Жауабы: Подсчёт восьмеричных чисел
count = 0
while True:
n = int(input())
if n == 0:
break
if 8**3 <= n < 8**4 and n % 8 == 0:
count += 1
print(count)
У этого задания официального ключа нет, поэтому ответ получен в разборе және кілтпен салыстырылмаған. Нәтижені жаттамас бұрын, өтіңіз выкладки — там видно, откуда взялось каждое число.
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и оканчивается на цифру 0. В ответе запишите количество искомых элементов.
Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность).
Программа должна напечатать только одно число — количество искомых элементов последовательности.
Пример работы программы: при вводе чисел 480, 552, 888, 3024, 4120, 0 программа должна вывести 3.
Где здесь ошибаются
Учитывают завершающий ноль как элемент последовательности.
Проверяют только делимость на 8, но не проверяют, что восьмеричная жазба является четырёхзначной.
Используют границу $8^4$ как допустимое значение, хотя число $8^4$ уже имеет пять цифр в восьмеричной системе.
Проверяют диапазон от $8^2$ до $8^3 - 1$, соответствующий трёхзначным восьмеричным числам.