최대공약수를 구할 때, 여지껏 두개의 수를 입력받아서 나머지와 나눗셈 연산을 통해 구하는 방법을 사용했지만 최근에는 파이썬에서는 Math.gcd라는 함수가 있어 잘 사용했지만, Java에서는 Math 클래스에 gcd 함수가 없더라.. 내장함수를 쓰면 편하니까 비슷한 함수가 있나 찾아보니 BigInteger라는 클래스에 gcd라는 함수가 있었다!

 

BigInteger 클래스를 사용해서 최대공약수를 구하려면 다음과 같은 단계를 거쳐 최대공약수를 구할 수 있다.

  1. 2개의 숫자(int형)를 BigInteger 클래스로 변환한다.
    • 이 때, BigInteger의 valueOf 함수를 사용해서 변환해 준다.
  2. BigInteger 클래스의 gcd 함수를 사용하여 최대공약수를 구한다.
  3. 구한 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

+ Recent posts