https://www.acmicpc.net/problem/2609
2609번: 최대공약수와 최소공배수
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
www.acmicpc.net
#pragma warning(disable:4996)
#include <stdio.h>
int main() {
int n, n1, min = 0, max = 0;
scanf("%d %d", &n, &n1);
for (int i = 1; i <= n && i <= n1; i++) {
if (n % i == 0 && n1 % i == 0)
max = i;
}
min = (n * n1) / max;
printf("%d\n%d", max, min);
return 0;
}
이 문제는 최대공약수와 최소공배수를 구하여 출력하면 해결되는 문제이다.
코드의 순서는 다음과 같다.
1. 두 수를 입력받을 함수와 최대공약수, 최소공배수를 저장할 함수를 선언한다.
2. 두 수를 입력받는다.
3. i가 두 수 n과 n1보다 작을때까지 반복문을 실행한다.
이 때 n 혹은 n1 둘중 하나라도 자기자신과 같아지면 반복문은 종료된다.
4. 입력받은 두 수 n을 i 나누었을 때 나머지가 0이고, n1을 i 로 나누었을때도 나머지가 0이라면, 최대공약수에 i를 저장한다.
나머지가 0이라는 것은 그 수의 배수라는 의미이다.
5. 최소공배수는 두 수를 곱하고 최대공약수로 나눈 값이다.
최소공배수는 두 수 이상을 곱하고 최대공약수로 나눈 값이라는 개념을 이해하고 있어야 한다.
6. 최대공약수와 최소공배수를 출력한다.
처음에는 최소공배수를 구하는 방법을 몰라서 해맸지만, 인터넷에서 개념을 찾아보고 해결한 문제이다.
'TeamLog > 과제' 카테고리의 다른 글
1598. 꼬리를 무는 숫자 나열 (0) | 2023.04.10 |
---|---|
1402. 아무래도이문제는A번난이도인것같다 (0) | 2023.04.09 |
8958. OX퀴즈 (0) | 2023.04.09 |
1259. 팰린드롬수 (0) | 2023.04.09 |
1546. 평균 (0) | 2023.04.09 |