> 개발-IT-인터넷/> JAVA

[해커랭크(HackerRank) JAVA 풀이] - Java Primality Test

jini:) 2023. 9. 21. 09:42
728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > BigNumber > Java Primality Test
 

HackerRank

HackerRank is the market-leading technical assessment and remote interview solution for hiring developers. Learn how to hire technical talent from anywhere!

www.hackerrank.com

 

소수는 양의 약수가 1과 자기 자신인 1보다 큰 자연수입니다. 예를 들어 처음 6개의 소수는 2, 3, 5, 7, 11, 13입니다.

큰 정수 n이 주어지면 Java BigInteger 클래스의 isProbablePrime 메서드를 사용하여 소수인지 여부를 확인하고 인쇄합니다.

 

Input Format

정수 n(검사할 숫자)을 포함하는 한 줄.

 

Constraints

n은 최대 100자리 숫자를 포함합니다.

 

Output Format

n이 소수이면 prime을 출력합니다. 그렇지 않으면 not prime을 출력합니다.

 

 

Sample Input

13

 

Sample Output

prime

 

Explanation

13의 유일한 양수 제수는 1과 13이므로 prime을 인쇄합니다.

 

 

Code

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;



public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

        String n = bufferedReader.readLine();

        bufferedReader.close();
        
        BigInteger m = new BigInteger(n);
        if(m.isProbablePrime(10)) {
            System.out.println("prime");
        } else {
            System.out.println("not prime");
        }
    }
}

 

isProbablePrime(int certainty)
Java의 BigInteger 클래스에서 제공되는 메서드.
주어진 BigInteger 객체가 소수인지 여부를 확률적으로 판단하는 데 사용.
소수의 확률성을 기반으로 판단하므로 "확률적 소수 판정" 이라고도 함.

파리미터 certainty
판정의 확실성(정확성)을 나타내는 값.
보통 양의 정수값으로 지정.
판정의 확실성을 높이기 위해 사용되며, 높은 값일수록 판정이 더 정확함.
일반적으로 1보다 큰 값(코드에서는 10)을 사용.
높은 확실성을 원할 경우 더 큰 값을 지정.

반환값
true : 주어진 BigInteger 객체가 소수일 가능성이 높음
false : 주어진 Biginteger 객체가 소수가 아닐 가능성이 높음

* 주의
확률적 판단을 수행하므로, true가 반환되어도 100% 소수임을 보장하지 않음.
충분히 높은 확실성 값을 선택하면 소수 판정이 매우 정확해 짐.

 

 

 

개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.

 

 

 

728x90
반응형