개요
백준 문제 2609번을 풀면서 어려웠던 점과 코드를 정리한다.
소요 시간 : ???
https://www.acmicpc.net/problem/2609
문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| #include <iostream> using namespace std;
void LCM(int num1,int num2,int gcd) { cout << ((num1 * num2) / gcd) << "\n"; }
void GCD(int num1,int num2) { int tmpNum1 = num1; int tmpNum2 = num2; while(tmpNum2 != 0) { int r = tmpNum1 % tmpNum2; tmpNum1 = tmpNum2; tmpNum2 = r; } cout << tmpNum1 << endl; LCM(num1,num2,tmpNum1); }
void solve() { int num1,num2; cin >> num1 >> num2; GCD(num1,num2);
}
int main() { solve();
}
|
소감 및 메모
예전에 배웠던 알고리즘인데 기억이 안남,,ㅋ
최소공배수는 a * b / gcd인 점
최대공약수는 그..네..외우죠,,ㅋ 유클리드 호제법입니다..!