💡 문자열 형태로 이루어져 있어 숫자의 범위가 무한함
Type | 범위 |
---|
int | -2,147,483,648 ~ 2,147,483,647 |
long | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
BigInteger 계산
- 문자열이므로 사칙연산 불가 → 내부 메서드 사용
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 형 변환
BigInteger bigNumber = BigInteger.valueOf(100000);
int int_bigNum = bigNumber.intValue();
long long_bigNum = bigNumber.longValue();
float float_bigNum = bigNumber.floatValue();
double double_bigNum = bigNumber.doubleValue();
String String_bigNum = bigNumber.toString();
BigIntger 두 수 비교
BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("1000000");
int compare = bigNumber1.compareTo(bigNumber2);
System.out.println(compare);
소수 구하기
import java.io.*;
import java.math.BigInteger;
public class num4134 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
for(int i=0; i<n; i++) {
BigInteger num = new BigInteger(String.valueOf(Long.parseLong(br.readLine())));
if(num.isProbablePrime(10)) {
System.out.println(num);
} else {
System.out.println(num.nextProbablePrime());
}
}
}
}