자연수 a,b에 대해서 a와 b를 나눈 나머지를 r이라 한다면, a,b의 최대 공약수와 b,r의 최대 공약수는 같다.
최대 공약수(GCD) 찾기
192와 72의 최대 공약수를 찾는 경우
192/72는 약분하면 8/3이 됨
192 % 72 = 48
72 % 48 = 24
48 % 24 = 0
둘 중 한 값을 나머지 값으로 계속 mod 연산하면 0이 된다.
여기서 0이 될 때 나눈 값이 최대 공약수가 됨
Code
public static int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
최소 공배수(LCM) 찾기
LCM = (a * b) / GCD
Referecne URLs :