16. Программирование: #294635
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в системе счисления с основанием $5$ четырёхзначна и оканчивается на цифру $1$. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает $1000$. Последовательность чисел заканчивается числом $0$ ($0$ – признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
| Входные данные | Выходные данные |
|---|---|
| 86 136 271 496 731 0 | 3 |
Четырёхзначное число в системе счисления с основанием $5$ находится в диапазоне от $1000_5$ до $4444_5$. В десятичной системе это числа от $125$ до $624$:
$1000_5=125$
$4444_5=624$.
Если запись числа в системе счисления с основанием $5$ оканчивается цифрой $1$, то при делении этого числа на $5$ остаток должен быть равен $1$.
Значит, для каждого введённого числа достаточно проверить два условия: $125 \leq x \leq 624$ и $x \%\ 5 == 1$. Будем увеличивать счётчик на $1$, если оба условия выполняются. Ввод чисел продолжается до тех пор, пока не встретится число $0$.
count = 0
x = int(input())
while x != 0:
if 125 <= x <= 624 and x % 5 == 1:
count += 1
x = int(input())
print(count)
Для приведённого примера условию соответствуют числа $136$, $271$ и $496$:
$136=1021_5$
$271=2041_5$
$496=3441_5$.
Число $86=321_5$ является трёхзначным, а $731=10411_5$ — пятизначным, поэтому они не подходят.
Таким образом, программа выведет: $3$.