Задание №16 — Алгоритмы и программирование
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в системе счисления с основанием 5 четырёхзначна и оканчивается на цифру 2. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
Входные данные | Выходные данные |
87 137 272 497 732 0 | 3 |
Проверка решения с помощью ИИ доступна авторизованным пользователям
Решение.
Для решения этой задачи нам необходимо последовательно считывать числа до тех пор, пока не встретим 0, и проверять каждое число на соответствие двум условиям в пятеричной системе счисления.
Шаг 1. Анализ условий.
1. Число в пятеричной системе счисления должно быть четырёхзначным.
Минимальное четырёхзначное число в системе с основанием 5 — это . Переведём его в десятичную систему: .
Максимальное четырёхзначное число — это . Оно на единицу меньше, чем . Вычислим . Значит, максимальное число равно .
Следовательно, число четырёхзначно в пятеричной системе, если .
2. Число в пятеричной системе должно оканчиваться на цифру 2.
Последняя цифра числа в любой системе счисления — это остаток от деления этого числа на основание системы. Значит, нам нужно проверить условие: .
Шаг 2. Алгоритм решения.
1. Создаём переменную-счётчик (например, count) и обнуляем её.
2. Организуем цикл чтения чисел. Так как количество чисел заранее неизвестно, используем цикл while, который прервётся при вводе 0.
3. Внутри цикла проверяем: если число И число И остаток от деления на 5 равен 2, то увеличиваем счётчик на 1.
4. После окончания цикла выводим значение счётчика.
Шаг 3. Проверка на примере.
- 87: (не подходит).
- 137: и (подходит, count = 1).
- 272: и (подходит, count = 2).
- 497: и (подходит, count = 3).
- 732: (не подходит).
Итого: 3.
Пример реализации на языке Python:
count = 0
x = int(input())
while x != 0:
if 125 <= x <= 624 and x % 5 == 2:
count += 1
x = int(input())
print(count)
Ответ: 3
Источник: ФИПИ