배수와 약수(5086번)

PearLine_Zero·2024년 3월 29일

하루에 1커밋 CodingTest

목록 보기
70/110
post-thumbnail
  • 티어 : Bronze 3
  • 정답여부 : 정답
  • 알고리즘 유형 : 수학, 사칙연산
  • 시간 제한 : 1초

💡문제

4 × 3 = 12이다.

이 식을 통해 다음과 같은 사실을 알 수 있다.

3은 12의 약수이고, 12는 3의 배수이다.

4도 12의 약수이고, 12는 4의 배수이다.

두 수가 주어졌을 때, 다음 3가지 중 어떤 관계인지 구하는 프로그램을 작성하시오.

첫 번째 숫자가 두 번째 숫자의 약수이다.
첫 번째 숫자가 두 번째 숫자의 배수이다.
첫 번째 숫자가 두 번째 숫자의 약수와 배수 모두 아니다.

💡입력

입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 10,000이 넘지않는 두 자연수로 이루어져 있다. 마지막 줄에는 0이 2개 주어진다. 두 수가 같은 경우는 없다.

💡출력

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

💡예제 입력 1

8 16
32 4
17 5
0 0

💡예제 출력 1

factor
multiple
neither

💡문제요약

첫 번째 수가 두 번째 숫자의 약수인지 첫 번째 숫자가 두 번째 숫자의 배수인지 둘다 아닌 경우 neither 출력

💡알고리즘 설계

  1. a, b 와 두 수를 입력 받는데 a가 b보다 작을 때 나눴을때 0이면 factor출력 아니면 neither출력
  2. 반대로 b가 a보다 작을 때 나눠지면 multiple 출력 아니면 neither 출력
  3. 입력받은 숫자가 0,0 일 경우 break

💡작성코드

  • python
while True:
    a, b = map(int, input().split())
    if a < b:
        if b % a == 0:
            print('factor')
        else:
            print('neither')
    elif a > b:
        if a % b == 0:
            print('multiple')
        else:
             print('neither')
    elif a == 0 and b == 0:
            break

💡틀린 이유 or 수정할 부분

없음

💡틀린 부분 수정 or 다른풀이

없음

💡느낀점 or 기억할 정보

좀 더 간단하게 코드 작성 찾아봐야겠다.

profile
https://baesaa0304.tistory.com 블로그 이사합니다~

0개의 댓글