반응형
문제
맨체스터 유나이티드의 감독 퍼거슨은 빨간 사과를 R개, 초록 사과를 G개 가지고 있다. 훈련장에 있는 선수들 중 몇 명에게 나누어 주려고 한다. 단, 선수들이 서로 같은 개수의 사과를 받지 못하면 경기력 저하가 나타날 수 있으므로 모든 선수에게 같은 개수를 주려고 한다. 퍼거슨 감독은 사과를 싫어한다. 따라서 사과가 남으면 안 된다.
예를 들어, 퍼거슨이 빨간 사과를 4개, 초록 사과를 8개 가지고 있다면, 다음과 같이 세가지 방법으로 나누어 줄 수 있다.
- 선수 1명에게 빨간 사과 4개와 초록 사과 8개를 줄 수 있다.
- 선수 2명에게 빨간 사과 2개와 초록 사과 4개를 각각 줄 수 있다.
- 선수 4명에게 빨간 사과 1개와 초록 사과 2개를 각각 줄 수 있다.
퍼거슨이 사과를 나누어 주는 방법을 구하는 프로그램을 작성하시오. 훈련장에 선수는 무한히 많다.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int gcd(int red, int green) {
int n;
while (green != 0) {
n = red % green;
red = green;
green = n;
}
return red;
}
int main() {
int red, green, n;
scanf("%d%d", &red, &green);
n = gcd(red, green);
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
printf("%d %d %d\n", i, red/i, green/i);
}
}
}
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[ C / C++ ] 백준 4673 셀프 넘버 (0) | 2022.04.02 |
---|---|
[ C / C++ ] 백준 2960 에라토스테네스의 체 (0) | 2022.04.01 |
[ C / C++ ] 백준 2884 알람 시계 (0) | 2022.03.30 |
[ C / C++ ] 백준 2841 외계인의 기타 연주 (0) | 2022.03.29 |
[ C / C++ ] 백준 2792 보석 상자 (0) | 2022.03.28 |