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