Решение: Подсчёт восьмеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и оканчивается на цифру 0. В ответе запишите количество искомых элементов.
На вход программе сначала подаётся количество элементов последовательности $N$ ($1 \le N \le 1000$), затем каждый элемент последовательности в отдельной строке.
Программа должна напечатать только одно число — количество искомых элементов последовательности.
Пример работы программы: при входных данных 5, 480, 552, 888, 3024, 4120 программа должна вывести 3.
Решение по шагам
4 шагаЧетырёхзначная запись в восьмеричной системе начинается с числа $8^3 = 512$ и заканчивается числом $8^4 - 1 = 4095$.
Последняя цифра восьмеричной записи равна 0, если число делится на 8 без остатка.
Последовательно считываем все $N$ чисел. Если число находится в диапазоне от 512 до 4095 и делится на 8, увеличиваем счётчик.
После обработки всей последовательности выводим значение счётчика.
$$count = \sum [512 \le x \le 4095 \ \text{и} \ x \bmod 8 = 0]$$```python
n = int(input())
count = 0
for _ in range(n):
x = int(input())
if 512 <= x <= 4095 and x % 8 == 0:
count += 1
print(count)
```
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют только делимость на 8, не учитывая, что запись должна быть четырёхзначной.
Используют диапазон от 512 до 4096 включительно, хотя число 4096 уже имеет пятизначную запись в восьмеричной системе.
Проверяют последнюю цифру десятичной записи вместо последней цифры восьмеричной записи.