Проверяйте делимость на 6 первой, затем на 2 и на 3. Иначе кратные обоим числам попадут в более раннюю одиночную ветку и не получат Buzz.
Вывод слов для чисел, делящихся на 2, 3 и 6
Проверяйте делимость на 6 первой, затем на 2 и на 3. Иначе кратные обоим числам попадут в более раннюю одиночную ветку и не получат Buzz.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Составьте программу, которая перебирает все целые числа от 1 до 100 000 и применяет к каждому из них следующие правила:
- если число делится на 2 без остатка, вывести слово "Foo";
- если число делится на 3 без остатка, вывести слово "Bar";
- если число делится одновременно на 2 и 3 (то есть на 6), вывести слово "Buzz";
- во всех остальных случаях вывести само число.
Ответ
Проверяйте делимость на 6 первой, затем на 2 и на 3. Иначе кратные обоим числам попадут в более раннюю одиночную ветку и не получат Buzz.
Программа:
for number in range(1, 100001):
if number % 6 == 0:
print('Buzz')
elif number % 2 == 0:
print('Foo')
elif number % 3 == 0:
print('Bar')
else:
print(number)
Диапазон включает 100000, поскольку верхняя граница range исключается. Для каждого числа печатается ровно одна строка. Например, 2 даёт Foo, 3 — Bar, 6 — Buzz, 7 — само число. Условия elif исключают повторный вывод для одного значения.