2609: 최대공약수와 최소공배수
2022. 5. 5. 11:43ㆍC언어/백준
-Class2 : Silver5
https://www.acmicpc.net/problem/2609
-결과
-코드
#include <stdio.h>
int main() {
int a, b;
int x, y;
scanf("%d %d", &a, &b);
for (int i = 1; i <= a && i <= b; i++) {
if (a % i == 0 && b % i == 0)
x = i;
}
printf("%d\n", x);
printf("%d", a * b / x);
}
-풀이
이 문제는 우선 최대공약수와 최소공배수를 구하는 방식을 알아야 한다.
일단 최대공약수부터 구하면, 자연수이므로 for문의 i는 1부터 시작하고, i는 a와 b보다 작아야하며
i로 a와 b를 각각 나눴을 때 나머지가 0이 되어야 한다. 그 조건을 모두 만족해야 하므로 &&이고,
그런 i를 x라 하고 x를 출력한다.
최소공배수는 a와 b를 곱하고 , 인수분해 했을 때 공통으로 들어가있는 x인 최대공약수를 나누면 나온다.
'C언어 > 백준' 카테고리의 다른 글
17478: 재귀함수가 뭔가요? (0) | 2022.05.05 |
---|---|
2751: 수 정렬하기2 (0) | 2022.05.05 |
1436: 영화감독 숌 (0) | 2022.05.01 |
1181: 단어 정렬 (0) | 2022.05.01 |
1018: 체스판 다시 칠하기 (0) | 2022.05.01 |