18.6 연습문제: 2과 11의 배수, 공배수 처리하기

다음 소스 코드를 완성하여 1부터 100까지의 숫자를 출력하면서 2의 배수일 때는 'Fizz', 11의 배수일 때는 'Buzz', 2과 11의 공배수일 때는 'FizzBuzz'가 출력되게 만드세요.

practice_fizzbuzz_2_11.py

for i in range(1, 101):
    if                           :
        print('FizzBuzz')
    elif           :
        print('Fizz')
    elif           :
        print('Buzz')
    else:
        print(i)

실행 결과

... (생략)
FizzBuzz
89
Fizz
91
Fizz
93
Fizz
95
Fizz
97
Fizz
Buzz
Fizz

정답

 i % 2 == 0 and i % 11 == 0
 i % 2 == 0
 i % 11 == 0

해설

2의 배수는 i를 2로 나눴을 때 0이 나오면 되므로 i % 2 == 0과 같이 작성하면 되고, 11의 배수는 i를 11로 나눴을 때 0이 나오면 되므로 i % 11 == 0과 같이 작성하면 됩니다.

2와 11의 공배수는 i % 2 == 0 and i % 7 == 0과 같이 논리 연산자 and로 구해도 되고, 2와 11의 최소공배수인 22를 직접 사용하여 i % 22 == 0와 같이 구해도 됩니다.