문제 : https://www.acmicpc.net/problem/5086
(1) 내 해답 : 순차적으로 조건을 걸어 해결함
#include <cstdio>
int main()
{
int a = 0, b = 0;
while (true)
{
scanf("%d %d", &a, &b);
if ( ( a == 0 ) && ( b == 0 ) ) break;
( b % a == 0 )
? puts("factor")
: ( a % b == 0 )
? puts("multiple")
: puts("neither");
}
return 0;
}
(2) 다른 해답
- 나와 비슷한 방식이지만 언어의 특성을 활용함
#include <cstdio>
int a, b;
int main() {
// scanf는 더 이상 입력이 없으면(EOF) EOF 값(보통 -1)을 반환한다.
// 거기에 입력이 끝날 때가 아니면 0이 들어올 일이 없으므로 a가 0일 때 끝내도록 조건을 설정했다.
while (scanf("%d %d", &a, &b) && a) puts(a%b ? b%a ? "neither" : "factor" : "multiple");
return 0;
}
'프로그래밍 > 알고리즘' 카테고리의 다른 글
백준 9506번: 약수들의 합 (1) | 2024.03.22 |
---|---|
백준 2501번: 약수 구하기 (0) | 2024.03.20 |
백준 2903번: 중앙 이동 알고리즘 (0) | 2024.02.27 |
백준 11005번: 진법 변환 2 (0) | 2024.02.27 |
알고리즘에 많이 쓰이는 함수 & 라이브러리 (0) | 2023.11.09 |