https://www.acmicpc.net/problem/14490
14490번: 백대열
n과 m이 :을 사이에 두고 주어진다. (1 ≤ n, m ≤ 100,000,000)
www.acmicpc.net
n과 m을 형식에 맞게 입력받아 최대공약수 k를 구한 뒤, n / k와 m / k를 형식에 맞게 출력한다.
#include <cstdio>
// a와 b의 최대공약수를 반환
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int main() {
// n, m: 약분할 두 숫자, k: n과 m의 최대공약수
int n, m, k;
// n과 m을 입력받은 뒤 k에 n과 m의 최대공약수를 저장
scanf("%d:%d", &n, &m);
k = gcd(n, m);
// n과 m을 k로 나눠 최대한으로 약분한 꼴을 출력
printf("%d:%d\n", n / k, m / k);
return 0;
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
14502번: 연구소 (0) | 2022.01.11 |
---|---|
14500번: 테트로미노 (0) | 2022.01.11 |
14425번: 문자열 집합 (0) | 2022.01.11 |
14400번: 편의점 2 (0) | 2022.01.10 |
13594번: 숨바꼭질 3 (0) | 2022.01.10 |