공부/코테 준비하자
[C++] 최대공약수 최소공배수
_mwmw
2022. 8. 28. 00:58
최대공약수 - 유클리드 호제법
int gcd(int a, int b){
int k;
while(m!=0){
k = a % b;
a = b;
b = k;
}
return a;
}
유클리드 호제법은 최대공약수를 찾는 가장 빠른 방법이라더라.
덧붙여서 gcd는 헤더파일 numeric에 이미 있다.(!)
#include <numeric>
c = std::gcd(a,b);
최소공배수
int lcm(int a, int b){
return a * b / gcd(a, b);
}
a * b = gcd(a, b) * lcm(a, b)를 이용한다.