최대공약수를 구할 때, 여지껏 두개의 수를 입력받아서 나머지와 나눗셈 연산을 통해 구하는 방법을 사용했지만 최근에는 파이썬에서는 Math.gcd라는 함수가 있어 잘 사용했지만, Java에서는 Math 클래스에 gcd 함수가 없더라.. 내장함수를 쓰면 편하니까 비슷한 함수가 있나 찾아보니 BigInteger라는 클래스에 gcd라는 함수가 있었다!
BigInteger 클래스를 사용해서 최대공약수를 구하려면 다음과 같은 단계를 거쳐 최대공약수를 구할 수 있다.
- 2개의 숫자(int형)를 BigInteger 클래스로 변환한다.
- 이 때, BigInteger의 valueOf 함수를 사용해서 변환해 준다.
- BigInteger 클래스의 gcd 함수를 사용하여 최대공약수를 구한다.
- 구한 gcd 값을 다시 int형으로 변환한다.
- 이 때, BigInteger 클래스의 intValue() 메서드를 사용해서 변환해 준다.
예시
BigInteger a1 = BigInteger.valueOf(5);
BigInteger a2 = BigInteger.valueOf(10);
int gcd = a1.gcd(a2).intValue();
'Language > Java' 카테고리의 다른 글
[ Junit ] 랜덤 데이터 테스트 (0) | 2022.02.10 |
---|---|
[ Junit ] 테스트 작성 (0) | 2022.02.10 |
[ Java ] 문자열 알파벳순 정렬하기 (0) | 2022.01.12 |
[알고리즘] Java로 구현한 Union-find (0) | 2021.07.11 |
[알고리즘] HashMap (0) | 2021.07.11 |