Ответ: Подсчёт восьмеричных чисел
count = 0; while True: n = int(input()); if n == 0: break; if 8**3 <= n < 8**4 and n % 8 == 2: count += 1; print(count)
У этого задания официального ключа нет, поэтому ответ получен в разборе и с ключом не сверен. Перед тем как заучивать результат, пройдите выкладки — там видно, откуда взялось каждое число.
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и оканчивается на цифру 2. Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0, которое не входит в последовательность. Программа должна вывести только одно число — количество искомых элементов.
Где здесь ошибаются
Проверяют последнюю десятичную цифру вместо последней цифры восьмеричной записи.
Используют только условие n % 8 == 2 и не проверяют, что запись является четырёхзначной.
Включают число 0 в последовательность.
Путают верхнюю границу диапазона и записывают условие n <= 4096.