Подготовка к школе
1 класс
2 класс
3 класс
4 класс
5 класс
6 класс
7 класс
8 класс
9 класс
10 класс
11 класс
ОГЭ
ЕГЭ
Для всех
Назад

16. Программирование: #294638

Сообщить о проблеме
Задание #294638
Задание было решено верно
Задание было решено неверно

Напишите программу, которая в последовательности натуральных десятичных чисел определяет сумму элементов, запись которых в системе счисления с основанием $5$ оканчивается чётной цифрой. Если среди входных данных таких элементов нет, программа должна вывести «$NO$».

Программа получает на вход натуральные десятичные числа, не превышающие $30\ 000$, каждое в отдельной строке. Количество введённых чисел неизвестно, их последовательность заканчивается числом $0$ ($0$ – признак окончания ввода, в последовательность не входит).

Программа должна вывести одно число – сумму десятичных чисел (элементов последовательности), запись которых в системе счисления с основанием $5$ оканчивается чётной цифрой, или «$NO$», если среди входных данных таких элементов нет.

Пример работы программы

Входные данныеВыходные данные
12
15
10
71
50
11
0
87

Последняя цифра записи числа в системе счисления с основанием $5$ равна остатку от деления этого числа на $5$. Чётными цифрами в 5-ричной системе счисления являются $0$, $2$ и $4$.

Значит, нам подходят числа, для которых остаток от деления на $5$ равен $0$, $2$ или $4$. Например:

$12 = 2 \cdot 5 + 2$
$15 = 3 \cdot 5 + 0$
$10 = 2 \cdot 5 + 0$.

Будем для каждого введённого числа проверять условие $x \%\ 5 == 0$ или $x \%\ 5 == 2$ или $x \%\ 5 == 4$. Если условие выполняется, прибавим число к сумме и увеличим счётчик на $1$. Ввод чисел продолжается до тех пор, пока не встретится число $0$. После обработки всех чисел, если счётчик равен $0$, выведем $NO$, иначе выведем сумму подходящих чисел.

s = 0
count = 0
x = int(input())

while x != 0:
    if x % 5 == 0 or x % 5 == 2 or x % 5 == 4:
        s += x
        count += 1
    x = int(input())

if count == 0:
    print("NO")
else:
    print(s)

Для приведённого примера условию соответствуют числа $12$, $15$, $10$ и $50$. Их сумма: $12+15+10+50=87$.

Поэтому программа выведет: $87$.

Показать
Очки опыта 20
Спросить Зави
0 заданий сегодня

Предложить улучшение