Задания 23-24 КЕГЭ: как проверять кратность суммы или произведения цифр?
В заданиях вроде 23 и 24 часто фигурирует условие «сумма цифр кратна 3», «произведение делится на N» и т.п. Я каждый раз заново вспоминаю, как достать цифры и проверить делимость. Есть аккуратный шаблон на Python?
4 ответа
Кратность проверяется остатком: x % k == 0 значит «x делится на k». Сумму/произведение цифр удобно считать так:
n = 123456
digits = [int(c) for c in str(n)] # цифры как список
sum_d = sum(digits)
prod_d = 1
for d in digits:
prod_d *= d
print(sum_d % 3 == 0) # сумма цифр кратна 3?
print(prod_d % 5 == 0) # произведение цифр кратно 5?
Превращение числа в строку str(n) и обратно int(c) — самый короткий способ перебрать цифры, без деления на 10 в цикле. Дальше всё на остатке % k. Помни: сумма цифр кратна 3 ⟺ само число кратно 3 (то же для 9) — иногда это упрощает условие напрямую.
Кратность — это % k == 0. Цифры: [int(c) for c in str(n)], дальше sum или произведение в цикле.
Можно и без строк: while n: d = n % 10; ...; n //= 10 — вытаскивает цифры справа налево. Но через str() короче и нагляднее для экзамена.
x % k == 0.