백준
[백준] 5086번 : 배수와 약수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트
우당탕탕 개발자
2023. 10. 19. 15:27
728x90
반응형
5086번: 배수와 약수
각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다.
www.acmicpc.net
1. 문제 설명
2. 풀이과정
해당 문제는 두 수가 배수와 약수의 관계인지 판별하는 문제이다.
첫 번째 수와 두 번째 수의 크기 차이를 비교하면 배수를 판별해야 할지, 약수를 판별해야 할지 구분할 수 있다.
만약 첫 번째 수가 더 크면 배수인지 판별하고, 두 번째 수가 더 크면 약수인지 판별하면 된다.
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- 종료 입력인 0 두 개를 입력하기 전까지 반복하기 위해 무한 반복문을 사용한다. while (True)
- 두 수를 입력받는다. num1, num2 = map(int, sys.stdin.readline().split())
- 만약 두 수가 모두 0이면 if (num1 == 0) and (num2 == 0)
- 종료한다. break
- 종료가 아닐 경우, 만약 첫 번째 숫자가 두 번째 숫자보다 크면 if (num1 > num2)
- 배수인지 판별한다. 만약 첫 번째 수가 두 번째 수의 배수이면 if (num1 % num2 == 0)
- multiple을 출력한다. print('multiple')
- 배수가 아니라면 neither을 출력한다. else: print('neither')
- 반면에 두 번째 수가 첫 번째 수보다 크다면 else
- 약수인지 판별한다. 만약 첫 번째 수가 두 번째 수의 약수이면 if (num2 % num1 == 0)
- factor을 출력한다. print('factor')
- 약수가 아니라면 neither을 출력한다. else: print('neither')
반응형
3. 소스코드
import sys
while (True):
num1, num2 = map(int, sys.stdin.readline().split())
if (num1 == 0) and (num2 == 0):
break
if (num1 > num2):
if (num1 % num2 == 0):
print('multiple')
else:
print('neither')
else:
if (num2 % num1 == 0):
print('factor')
else:
print('neither')
728x90
반응형