-
[Bronze3] 백준 5086 파이썬 : 배수와 약수백준 2023. 6. 1. 16:34
아이디어
간단하게 배수를 약수로 나누면 나머지가 0인 점을 이용해서 풀이하면 될 것 같다
문제풀이
a, b = map(int, input().split()) if b % a == 0: print("factor") elif a % b == 0: print("multiple") else: print("neither")
뭔가 놓친게 있다...
반복해서 케이스가 입력되는 부분, 0이 입력되는 부분을 놓쳤다.
테스트 케이스로 자연수가 주어지지만 마지막에 두 수에 0이 대입된다는 점을 고려해 다시 작성하기로 했다.
while True: a, b = map(int, input().split()) if a == 0 and b == 0: break if b % a == 0: print("factor") elif a % b == 0: print("multiple") else: print("neither")
마지막에는 항상 두 수에 0이 대입되므로 별도의 종료 구문은 없어도 괜찮았다.
소스코드
while True: a, b = map(int, input().split()) if a == 0 or b == 0: break if b % a == 0: print("factor") elif a % b == 0: print("multiple") else: print("neither")
while True: a, b = map(int, input().split()) if a == 0 and b == 0: break if b % a == 0: print("factor") elif a % b == 0: print("multiple") else: print("neither")
둘다 정답으로 나오긴 하나, 문제의 의도에 의하면 [or] 보다는 [and] 가 보다 적합할듯 싶다.