728x90
유클리드 호제법이란 두 수의 최대 공약수를 구할 때 쓰는 오래된 알고리즘이다.
a와 b의 최대공약수는 a%b와 b의 최대공약수와 같다는 방식이다. 그러다가 둘 중 한 수가 0이 되면 0이 아닌수가 최대공약수가 된다.
최소공배수는 두 수의 곱에서 최대공약수를 나누면 된다.
C++ 코드
#include <iostream>
using namespace std;
int gcd(int a, int b)
{
if (b == 0) return a;
return gcd(b, a % b);
}
int lcm(int a, int b)
{
return a * b / gcd(a, b);
}
int main()
{
int n, m;
cin >> n >> m;
cout << "gcd is : " << gcd(n, m) << endl;
cout << "lcm is : " << lcm(n, m) << endl;
return 0;
}
728x90
'알고리즘 > 기본 알고리즘' 카테고리의 다른 글
큐, 스택과 덱 (0) | 2020.02.03 |
---|---|
링크드 리스트 (0) | 2020.02.02 |
비트 마스크 (0) | 2020.02.01 |
에라토스테네스의 체 (0) | 2020.01.30 |
카라츠바(Karatsuba) 알고리즘 (0) | 2020.01.10 |