Python задача без break , list and more
Дано натуральное число N, которое не содержит цифры 0. Определите произведение его цифр, кратных z. Если в числе нет цифр кратных z, то выведите 0.
Пример вывода: 432 2
Вывод: 8
Мой код:
n, z = map(int, input().split())
p = 1
while n != 0:
if n % 10 != 0:
if n % 10 % z == 0:
p = p * n % 10
n //= 10
if n % 10 == 0:
print(end="")
n //= 10
if p == 1:
print('0')
if p != 1:
print(p)
Ответы (1 шт):
Автор решения: Алексей Р
→ Ссылка
Вариант покороче, корректно работающий при z=1.
n, z = map(int, input().split())
p = 0
while n != 0:
n, rest = divmod(n, 10)
if rest != 0 and rest % z == 0: # поскольку в условии сказано, что n не содержит 0, то 'rest != 0 and' можно удалить
p = max(p, 1) * rest
print(p)
1111 1
1
432 2
8