728x90
0. 주어진 문제 |
최대공약수와 최소공배수 성공
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞은 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 128 MB | 15805 | 10143 | 8419 | 66.391% |
문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를,둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
예제 입력 1
24 18
예제 출력 1
6 72
1. 풀이 |
밑의 소스코드 참고
2. 소스코드 |
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 | #include<iostream> using namespace std; void swap(int &a, int &b) { int temp = a; a = b; b = temp; } int gcd(int a, int b) { int temp; if (a < b) swap(a, b); while (b != 0) { temp = a % b; a = b; b = temp; } return a; } int lcm(int a, int b) { return (a * b) / gcd(a, b); } int main() { int a, b; cin >> a >> b; cout << gcd(a, b) << endl; cout << lcm(a, b) << endl; } | cs |
3. 문제 출처 |
https://www.acmicpc.net/problem/2609
4. 참고 |
'<백준> > |c++| easy' 카테고리의 다른 글
[c++] 백준 3036 - 링 (0) | 2019.04.17 |
---|---|
[c++] 백준 1850 - 최대공약수 (0) | 2019.04.16 |
[c++] 백준 13241 - 최소공배수 (0) | 2019.04.16 |
[c++] 백준 1934 - 최소공배수 (0) | 2019.04.16 |
[c++] 백준 9461 - 파도반 수열 (0) | 2019.04.16 |