본문 바로가기
백준

[백준] 5086번 : 배수와 약수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 10. 19.
728x90
반응형

 

 

5086번: 배수와 약수

각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다.

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

해당 문제는 두 수가 배수와 약수의 관계인지 판별하는 문제이다.

첫 번째 수와 두 번째 수의 크기 차이를 비교하면 배수를 판별해야 할지, 약수를 판별해야 할지 구분할 수 있다.

만약 첫 번째 수가 더 크면 배수인지 판별하고, 두 번째 수가 더 크면 약수인지 판별하면 된다.

 

  1. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. 종료 입력인 0 두 개를 입력하기 전까지 반복하기 위해 무한 반복문을 사용한다. while (True)
  3. 두 수를 입력받는다. num1, num2 = map(int, sys.stdin.readline().split())
  4. 만약 두 수가 모두 0이면 if (num1 == 0) and (num2 == 0)
  5. 종료한다. break
  6. 종료가 아닐 경우, 만약 첫 번째 숫자가 두 번째 숫자보다 크면 if (num1 > num2)
  7. 배수인지 판별한다. 만약 첫 번째 수가 두 번째 수의 배수이면 if (num1 % num2 == 0)
  8. multiple을 출력한다. print('multiple')
  9. 배수가 아니라면 neither을 출력한다. else: print('neither')
  10. 반면에 두 번째 수가 첫 번째 수보다 크다면 else
  11. 약수인지 판별한다. 만약 첫 번째 수가 두 번째 수의 약수이면 if (num2 % num1 == 0)
  12. factor을 출력한다. print('factor')
  13. 약수가 아니라면 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
반응형