코테/백준
[백준]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)