20.7 연습문제: 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)
실행 결과
1 Fizz 3 ... (생략) 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와 같이 구해도 됩니다.