-
[백준]2609 - 최대공약수와 최소공배수코테/백준 2023. 2. 24. 21:36
https://www.acmicpc.net/problem/2609
2609번: 최대공약수와 최소공배수
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
www.acmicpc.net
입력받은 두 자연수의 최대공약수와 최소공배수를 구하는 문제
#include <iostream> using namespace std; int gcd(int a, int b) { int c = a % b; while (c != 0) { a = b; b = c; c = a % b; } return b; } int lcm(int a, int b) { return (a * b) / gcd(a, b); } int main() { int n1, n2; cin >> n1 >> n2; cout << gcd(n1, n2) << "\n" << lcm(n1, n2); }
최대공약수
자연수 a와 b가 주어졌을때 a%b = c를 구하면
b와 c의 최대공약수는 a와 b의 최대 공약수와 같다
-> 이를 계속 반복하여 c가 0일때 b 값이 최대 공약수
최소공배수
a*b/(gcd)
'코테 > 백준' 카테고리의 다른 글
[백준]16506 - CPU (0) 2023.06.19 [백준]3568 - iSharp (구현) (0) 2023.06.19 [백준]14500 - 테르로미노 (0) 2023.03.02 [백준]10818 - 최댓값 최솟값 (0) 2023.02.24 [백준]1167 - 트리의 지름 (DFS) (0) 2023.02.24