Решение: Подсчёт чисел в системе счисления
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в системе счисления с основанием 5 четырёхзначна и оканчивается на цифру 1. Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0, которое не входит в последовательность. Программа должна напечатать только одно число — количество искомых элементов последовательности.
Пример: для последовательности 86, 136, 271, 496, 731 программа должна вывести 3.
Решение по шагам
4 шагаЧетырёхзначная запись в системе счисления с основанием 5 начинается с разряда $5^3$ и заканчивается перед $5^4$, поэтому число должно удовлетворять условию $125 \leq n \leq 624$.
$$5^3 \leq n < 5^4$$Последняя цифра записи числа в системе счисления с основанием 5 равна остатку от деления этого числа на 5. Поэтому для последней цифры 1 необходимо условие $n \bmod 5 = 1$.
$$n \bmod 5 = 1$$Считываем числа в цикле до появления нуля. Если число удовлетворяет обоим условиям, увеличиваем значение счётчика.
После завершения ввода выводим значение счётчика. Один из возможных вариантов программы:
count = 0
while True:
n = int(input())
if n == 0:
break
if 125 <= n <= 624 and n % 5 == 1:
count += 1
print(count)
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют диапазон от 100 до 999, как для десятичной записи.
Забывают, что верхняя граница диапазона равна $5^4 - 1 = 624$.
Проверяют последнюю десятичную цифру числа вместо остатка от деления на 5.
Учитывают число 0 как элемент последовательности.