Задание №16 — Алгоритмы и программирование
Напишите программу, которая в последовательности целых чисел вычисляет сумму всех чисел, которые кратны 6 или 11. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 признак окончания ввода, не входит в последовательность).
Количество чисел не превышает 100. Введённые числа по модулю
не превышают 300.
Программа должна вывести одно число: сумму всех чисел, которые кратны 6 или 11.
Пример работы программы:
Входные данные | Выходные данные |
12 | 23 |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо последовательно считывать числа, пока не встретится число , и проверять каждое из них на соответствие условию кратности.
Шаг 1: Анализ условия.
Нам нужно найти сумму чисел, которые делятся на или на .
Признак окончания ввода — число . Это значит, что мы будем использовать цикл while, который работает до тех пор, пока введённое число не равно нулю.
Шаг 2: Выбор переменных.
Нам понадобятся две переменные:
1. x — для хранения текущего введённого числа.
2. s — для накопления суммы (изначально равна ).
Шаг 3: Алгоритм действий.
1. Сначала считаем первое число.
2. Запустим цикл: пока число не равно :
а) Проверим, делится ли число на (остаток от деления на равен ) или на (остаток от деления на равен ).
б) Если условие выполняется, прибавим это число к сумме s.
в) Считаем следующее число для проверки в следующей итерации цикла.
3. После окончания цикла выведем итоговое значение s.
Шаг 4: Реализация на языке Python.
s = 0
x = int(input())
while x != 0:
if x % 6 == 0 or x % 11 == 0:
s = s + x
x = int(input())
print(s)
Разбор примера:
1. Вводим . делится на . Сумма .
2. Вводим . делится на . Сумма .
3. Вводим . Не делится ни на , ни на . Сумма остаётся .
4. Вводим . Цикл завершается. Выводится .
Ответ: 23
Источник: ФИПИ