문제
앞의 수가 뒤의 수와 어떤 관계인지 출력하면 된다. (약수 or 배수 or 무관)
풀이
자 우리 일단 들어가기전에 약수랑 배수가 뭔지 알아보고 가자. 이거 초딩때 한거라 다 까먹은 분들 계십니다, 예…
약수는 어떤 수를 딱 나눠 떨어지게 나눌 수 있는 수이고, 배수는 어떤 수로 딱 나눠 떨어지게 나눌 수 있는 수이다. 생각해봅시다. 5는 10의 약수이고 반대로 10은 5의배수이다. 1000은 8의 배수이고(125로 떨어짐) 8은 1000의 약수이다. 가릿?
import sys
while True:
m, n = map(int, sys.stdin.readline().split())
그리고 입력에 몇줄 받는다 이런거 없고 0 0 들어올때까지 받잖아요? 이게 뭔 소리냐면 와일트루(while True) 쓰라는 얘깁니다. 걍 무한뺑뺑이 돈다 이거지. 그러면 뭐가 필요해요? 그죠 나갈 조건 설정해야죠.
import sys
while True:
m, n = map(int, sys.stdin.readline().split())
if m == 0 and n == 0:
break
elif m <= n and n % m == 0:
print('factor')
elif m >= n and m % n == 0:
print('multiple')
else:
print('neither')
자 급하니까 알아서 따라오십쇼. if문에 있는건 반복문 나가는 조건, 즉 0 0에 대한 로직이다. 0 0이 들어오면 나가라는 얘기다. 그리고 약수는 왼쪽이 오른쪽보다 작거나 같고 오른쪽으로 왼쪽을 나누었을 때 나누어 떨어지면(나머지가 0이면) 약수다. 배수는 왼쪽이 오른쪽보다 크거나 같고(근데 배수가 자기자신 포함이던가…) 왼쪽으로 오른쪽을 나누었을 때 나머지가 0이면 배수. 둘이 방향 반대입니다. 그리고 둘 다 아니면 무관.
Reply