Не знаю почему не работает

Напишите программу, которая в последовательности целых чисел определяет количество чисел, кратных 5 или 9. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000. Программа должна вывести одно число: количество чисел, кратных 5 или 9.

Sample Input:

1 5 9 0 Sample Output:

2

s = -1
d = 0
while s == 0:
    s = int(input())
    if s % 5 == 0 or s % 9 == 0:
        d = d + 1
print(d)

Ответы (1 шт):

Автор решения: Andrey Mihalev

Вы не правильно понимаете как работает цикл while. Ваш цикл выполняет только когда S равен 0! А вам нужно чтобы при вводе 0 - цикл (и подсчет) завершался!

s = -1
d = 0
while True:
    s = int(input())
    if s == 0:
        break
    if s % 5 == 0 or s % 9 == 0:
        d = d + 1
print(d)

break завершит бесконечный цикл по условию.

Но даже этот код не решение вашей задачи, т.к. не учтено Количество чисел не превышает 1000 и Введённые числа по модулю не превышают 30 000

→ Ссылка