파이썬 배수구하기

x=int(input("정수 x="))

if x%5==0 and x%4==0: print("20의 배수") elif ~x%4==0 and x%5==0: print("5의 배수") elif ~x%5==0 and x%4==0: print("4의 배수") else: print("이도 저도 아닌 녀석들")

input()

여기서 5를 입력하면 5의 배수 라는 텍스트가 나오길 원하는데 이도저도 아닌녀석들이 나와버리네요 ㅠㅠ 4나 20의 경우에는 맞춰서 나오는데 8 12의 경우에도 제대로 출력되지 않고요.. 뭐가 문제인 걸까요...?

1답변

  • 안녕하세요?

    x가 4로 나누어지지 않는 경우를 ~x%4 == 0 로 표현하신 것 같습니다. 파이썬의 ~는 비트 연산자라서 원하시는 결과가 나오지 않을 것입니다.

    제 생각에는 코드를 다음과 같이 약간 고치면 원하는 결과가 나올 것 같습니다.

    if x%5==0 and x%4==0:
        print("20의 배수")
    elif x%4!=0 and x%5==0:
        print("5의 배수")
    elif x%5!=0 and x%4==0:
        print("4의 배수")
    else:
        print("이도 저도 아닌 녀석들")
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.