ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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] 가 보다 적합할듯 싶다.

    댓글

Designed by Tistory.