Решение: Минимальное кратное трём
Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, кратное 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 3.
Количество чисел не превышает 1000. Введённые числа не превышают 30 000.
Программа должна вывести одно число — минимальное число, кратное 3.
| Входные данные | Выходные данные |
|---|---|
| 3 21 12 31 | 12 |
Решение по шагам
4 шагаСчитываем количество чисел в последовательности.
$$n = \text{int(input())}$$Для хранения минимального подходящего числа удобно использовать первое найденное число, кратное 3, либо большое начальное значение.
Перебираем все числа. Число кратно 3, если остаток от деления на 3 равен нулю.
$$x \bmod 3 = 0$$Если найденное число меньше текущего минимума, заменяем значение минимума. После обработки всех чисел выводим минимум.
n = int(input())
minimum = 30001
for _ in range(n):
x = int(input())
if x % 3 == 0 and x < minimum:
minimum = x
print(minimum)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют только первое число или не обрабатывают всю последовательность.
Используют деление / вместо операции получения остатка %.
Забывают сравнить подходящее число с текущим минимумом.
Инициализируют минимум нулём, хотя все числа натуральные и положительные.