가장 많이 알고 있는 유클리드 호제법
- 2개의 자연수 최대공약수를 구하는 알고리즘의 하나
- 두 정수가 n과 m이고, n을 m으로 나눈 나머지가 r일 때, n과 m의 최대공약수는 m과 r의 최대공약수와 같다.
최소공배수
파이썬
def gcd(n, m):
if m == 0:
return n
else:
return gcd(m, n % m)
자바
public static int gcd(int n, int m)
{
if (m == 0) return n;
return gcd(m, n % m);
}
최대공배수
- x*y를 최대공약수로 나눈 몫이 최소공배수
파이썬
def lcm(x,y):
res = (x*y) // gcd(x,y)
return res
자바
public static int lcm(int x, int y)
{
return x*y / gcd(x,y);
}
'자료구조&알고리즘' 카테고리의 다른 글
백준2357 세그먼트 트리 공식 정리 (0) | 2024.08.22 |
---|---|
[알고리즘] 백트래킹 풀이기록 (0) | 2024.05.28 |
[자료구조 / 알고리즘] Heap / PriorityQueue (0) | 2024.03.19 |
[자료구조] 스택 Stack (Python,Java) (0) | 2023.10.12 |
[자료구조] 스택 Stack (JAVA, PYTHON) (0) | 2023.09.23 |