https://www.hackerrank.com/challenges/java-primality-test/problem?isFullScreen=true
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;
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 b = new BigInteger(n);
if( b.isProbablePrime(10) || b.equals("1")) {
System.out.println("prime");
}else{
System.out.println("not prime");
};
}
}
https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#isProbablePrime(int)
isProbablePrime, 확률적 소수 판별 함수
- import java.math.BigInteger;
- If certainty(확실성) is ≤ 0, true is returned.
- 대략 10의 값을 넘기면 해당 값이 소수인지에 대한 판별률이 99.9%에 가까워 진다고 한다.
BigInteger
https://coding-factory.tistory.com/604
- 프로그램 개발 특히 돈과 관련된 개발이나 알고리즘 문제를 풀 때 항상 최악의 상황을 고려해야 하므로
무한의 정수가 들어갈 수 있는 가능성이 있다면 BigInteger이라는 클래스를 활용하는 것이 좋습니다.
- BigInteger은 문자열 형태로 이루어져 있어 숫자의 범위가 무한하기에 어떠한 숫자이든지 담을 수 있습니다.
//선언
BigInteger bigNumber = new BigInteger("10000");
//연산
BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("10000");
System.out.println("덧셈(+) :" +bigNumber1.add(bigNumber2));
System.out.println("뺄셈(-) :" +bigNumber1.subtract(bigNumber2));
System.out.println("곱셈(*) :" +bigNumber1.multiply(bigNumber2));
System.out.println("나눗셈(/) :" +bigNumber1.divide(bigNumber2));
System.out.println("나머지(%) :" +bigNumber1.remainder(bigNumber2));
//형변환
BigInteger bigNumber = BigInteger.valueOf(100000); //int -> BigIntger
int int_bigNum = bigNumber.intValue(); //BigIntger -> int
long long_bigNum = bigNumber.longValue(); //BigIntger -> long
float float_bigNum = bigNumber.floatValue(); //BigIntger -> float
double double_bigNum = bigNumber.doubleValue(); //BigIntger -> double
String String_bigNum = bigNumber.toString(); //BigIntger -> String
반응형
'HackerRank > JAVA' 카테고리의 다른 글
Java BigInteger (0) | 2024.01.22 |
---|---|
Java Exception Handling (Try-catch) (0) | 2024.01.22 |
Valid Username Regular Expression (0) | 2024.01.19 |
[작성중]Java Regex 2 - Duplicate Words (0) | 2024.01.19 |
[못품]Java Regex (0) | 2024.01.17 |