참고: https://docs.oracle.com/javase/8/docs/api/index.html
BigDecimal 은 일하면서 계속 봤는데 BigIntger는 처음봐서 메모
BigDecimal = 소수점 표현
BigInteger = 정수 표현
둘다 표현 가능한 범위 제한 X
쓰기가 좀 귀찮다, 함수에 자료형 잘 보고 맞춰줄 것
표현
// int to BigInteger
int p = 1;
BigInteger pp = BigInteger.valueOf(p);
// String to BigInteger
String p = "1";
BigInteger pp = new BigInteger(p);
BigInteger x = BigInteger.ZERO;
BigInteger y = BigInteger.ONE;
연산
// 곱셈 : public BigInteger multiply(BigInteger val)
pp = pp.multiply(Biginteger.value(p));
// 거듭제곱 pow : public BigInteger pow(int exponent)
// 인자가 int형이라는 데에 주의
pp = pp.pow(p);
// modPow : public BigInteger modPow(BigInteger exponent, BigInteger m)
pp = pp.modPow(BigInteger.valueOf(n), BigInteger.valueOf(x));
// returns (pp ^ n) % x
이외에 공식문서 보면 gcd modInverse 등 다양한 결과에 대한 함수가 있다
큰 수 연산의 경우 시간 차이가 많이 나기 때문에 라이브러리에 뭐가 있는지 이김에 알아둠