목차
백준 단계별로 풀어보기
25.09.13
9단계: 약수, 배수와 소수 1
5086번: 배수와 약수
문제 링크 : https://www.acmicpc.net/problem/5086
문제 풀이
>> 문제를 풀기 위해 알아야 할 개념
- 배수와 약수의 관계
: 두 수 중에 큰 수를 작은 수로 나눴을 때 나머지가 없이 딱 떨어진다면, 작은 수는 큰 수의 약수이고 큰 수는 작은 수의 배수이다.
>> 풀이
- 출력할 변수를 string 타입으로 선언한다.
- while 반복문을 통해 계속 반복하며 입력받은 두 자연수를 int값으로 각각 변환시킨다.
- 마지막 줄에는 0이 2개 주어지므로 입력받은 두 자연수가 0이라면 반복문을 탈출시켜 코드를 종료시킨다.
- 첫 번째 숫자가 두 번째 숫자보다 클 때, 삼항연산자를 통해 첫 번째 숫자를 두 번째 숫자로 나눈 나머지가 0이라면 첫 번째 숫자가 두 번째 숫자의 배수이므로, result에 'multiple'을, 아니라면 배수와 약수 둘다 아니므로 result에 'neither'를 담고 출력한다.
- 두 번째 숫자가 첫 번째 숫자보다 클 때, 삼항연산자를 통해 첫 번째 숫자를 두 번째 숫자로 나눈 나머지가 0이라면 첫 번째 숫자가 두 번째 숫자의 약수이므로, result에 'factor'를, 아니라면 배수와 약수 둘다 아니므로 result에 'neither'를 담고 출력한다.
정답 코드
class Backjoon
{
static void Main(string[] args)
{
string result = "";
while (true)
{
string[] input = Console.ReadLine().Split();
int num1 = int.Parse(input[0]);
int num2 = int.Parse(input[1]);
if (num1 == 0 && num2 == 0)
break;
if (num1 > num2)
{
result = num1 % num2 == 0 ? "multiple" : "neither";
Console.WriteLine(result);
}
else
{
result = num2 % num1 == 0 ? "factor" : "neither";
Console.WriteLine(result);
}
}
}
}
'Development > Baekjoon' 카테고리의 다른 글
[C#] 2501번: 약수 구하기 (0) | 2025.09.14 |
---|---|
[C#] 2869번: 달팽이는 올라가고 싶다 (0) | 2025.09.12 |
[C#] 1193번: 분수찾기 (0) | 2025.09.11 |
[C#] 2292번: 벌집 (0) | 2025.09.10 |
[C#] 2903번: 중앙 이동 알고리즘 (0) | 2025.09.09 |