알고리즘

유클리드호제법

ZeroDev 2021. 8. 24. 15:36
반응형

유클리드호제법을 사용하여 최대공약수를 찾는 알고리즘은 다음과 같다.

pubic int getCommon(int a, intb){
	int n=0;
    while(b!=0){
    	n = a%b;
        a = b;
        b = n;
    }
    
    return a;
}

이 알고리즘은 a>b일 때 둘을 나누면서 최대 공약수를 찾는 방식이다.

이렇게 직접 알고리즘을 구현해도 되고 BigInteger의 메소드를 사용하는 방법도 있으며 그 방식은 아래와 같다.

public int getCommon(int a, int b){
        BigInteger num1 = BigInteger.valueOf(a);
        BigInteger num2 = BigInteger.valueOf(b);
        BigInteger gcd = num1.gcd(num2);
        return gcd.intValue();
}
반응형