문제
https://www.acmicpc.net/problem/5086
앞의 수가 뒤의 수와 어떤 관계인지 출력하면 된다. (약수 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이면 배수. 둘이 방향 반대입니다. 그리고 둘 다 아니면 무관.
'BOJ > [BOJ] Python' 카테고리의 다른 글
백준 9506번 풀이 (0) | 2023.06.24 |
---|---|
백준 2501번 풀이 (0) | 2023.06.23 |
백준 2903번 풀이 (0) | 2023.06.21 |
백준 2720번 풀이 (0) | 2023.06.19 |
백준 11005번 풀이 (0) | 2023.06.16 |