int GCD(int a, int b){
int gcd;
for (int i = 1; i < a && i < b; i++){
if (a%i == 0 && b%i == 0){
gcd = i;
}
}
return gcd;
}
머리 싸매다가 프갤에 딱 이거다 하는 거 있길래 배껴봤는데
이거보다 더 효율적인 방법이 있어?
이 방식으로는 최소 공배수부터 계속 gcd에 대입하고 최대값에 도달했을 때 연산을 끝내는 방식인데
int GCD(int a, int b){
int gcd;
for (int i = 1; i < a && i < b; i++){
if (a%i == 0 && b%i == 0){
gcd = i;
}
}
return gcd;
}
머리 싸매다가 프갤에 딱 이거다 하는 거 있길래 배껴봤는데
이거보다 더 효율적인 방법이 있어?
이 방식으로는 최소 공배수부터 계속 gcd에 대입하고 최대값에 도달했을 때 연산을 끝내는 방식인데
유클리드 호제법
있ㅇ
http://www.csie.nuk.edu.tw/~cychen/gcd/Two
fast GCD algorithms.pdf
유클리드 호제법