Шешімі: Подсчёт пятеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в системе счисления с основанием 5 четырёхзначна и оканчивается на цифру 2. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число — количество искомых элементов последовательности.
Пример работы программы:
Входные данные: 87, 137, 272, 497, 732, 0.
Выходные данные: 3.
Шешімін қадамдап көрсету
4 қадамЧетырёхзначная запись в системе счисления с основанием 5 начинается с разряда $5^3$, поэтому число должно удовлетворять условию $125 \leq n < 625$.
$$5^3 \leq n < 5^4$$Последняя цифра пятеричной записи равна 2 тогда и только тогда, когда остаток от деления числа на 5 равен 2.
$$n \bmod 5 = 2$$Считываем числа до появления 0, подсчитываем числа, удовлетворяющие обоим условиям, и выводим счётчик.
Один из возможных нұсқа программы на Python:
n = int(input())
count = 0
while n != 0:
if 125 <= n < 625 and n % 5 == 2:
count += 1
n = int(input())
print(count)
n = int(input())
count = 0
while n != 0:
if 125 <= n < 625 and n % 5 == 2:
count += 1
n = int(input())
print(count)
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют диапазон от 100 до 999, как для десятичной жазбалар, вместо диапазона от $5^3$ до $5^4-1$.
Забывают исключить число 0 из последовательности.
Проверяют последнюю десятичную цифру числа вместо остатка от деления на 5.
Выводят найденные числа, а не их количество.