16. Программирование: #294618
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления трёхзначна и оканчивается на цифру $4$. В ответе запишите количество искомых элементов.
На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \leq N \leq 1000$), затем каждый элемент последовательности в отдельной строке.
Программа должна напечатать только одно число – количество искомых элементов последовательности.
Пример работы программы
| Входные данные | Выходные данные |
|---|---|
| 5 36 164 476 508 580 | 3 |
Трёхзначное число в восьмеричной системе счисления находится в диапазоне от $100_8$ до $777_8$. В десятичной системе это числа от $64$ до $511$:
$100_8=64$
$777_8=511$.
Если запись числа в восьмеричной системе счисления оканчивается цифрой $4$, то при делении этого числа на $8$ остаток должен быть равен $4$.
Значит, для каждого введённого числа достаточно проверить два условия: $64 \leq x \leq 511$ и $x \%\ 8 == 4$. Будем увеличивать счётчик на $1$, если оба условия выполняются. Так как количество элементов последовательности задано числом $N$, обработаем все числа с помощью цикла.
n = int(input())
count = 0
for i in range(n):
x = int(input())
if 64 <= x <= 511 and x % 8 == 4:
count += 1
print(count)
Для приведённого примера условию соответствуют числа $164$, $476$ и $508$:
$164=244_8$
$476=734_8$
$508=774_8$.
Число $36=44_8$ является двузначным, а $580=1104_8$ — четырёхзначным, поэтому они не подходят.
Таким образом, программа выведет: $3$.