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