Решение: Подсчёт восьмеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления трёхзначна и оканчивается на цифру 2.
На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \leq N \leq 1000$), затем каждый элемент последовательности в отдельной строке.
Программа должна напечатать только одно число — количество искомых элементов последовательности.
Решение по шагам
4 шагаВосьмеричная запись является трёхзначной, если число не меньше $8^2 = 64$ и меньше $8^3 = 512$.
$$64 \leq x < 512$$Последняя цифра восьмеричной записи определяется остатком от деления числа на 8. Поэтому запись оканчивается цифрой 2, если остаток равен 2.
$$x \bmod 8 = 2$$Последовательно считываем все $N$ чисел и увеличиваем счётчик, если оба условия выполняются.
$$c = c + 1$$После обработки всей последовательности выводим значение счётчика.
```python
n = int(input())
count = 0
for _ in range(n):
x = int(input())
if 64 <= x < 512 and x % 8 == 2:
count += 1
print(count)
```
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют последнюю десятичную цифру числа вместо остатка от деления на 8.
Используют границы диапазона $64 \leq x \leq 512$, хотя число 512 записывается в восьмеричной системе четырьмя цифрами.
Забывают обработать все $N$ элементов последовательности.
Выводят сами подходящие числа, а не их количество.