Подготовка к школе
1 класс
2 класс
3 класс
4 класс
5 класс
6 класс
7 класс
8 класс
9 класс
10 класс
11 класс
ОГЭ
ЕГЭ
Для всех
Назад

16. Программирование: #294634

Сообщить о проблеме
Задание #294634
Задание было решено верно
Задание было решено неверно

Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в восьмеричной системе счисления четырёхзначна и оканчивается на цифру $1$. В ответе запишите количество искомых элементов.

Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает $1000$. Последовательность чисел заканчивается числом $0$ ($0$ – признак окончания ввода, не входит в последовательность).

Программа должна напечатать только одно число – количество искомых элементов последовательности.

Пример работы программы

Входные данныеВыходные данные
481
553
889
3025
4121
0
3

Четырёхзначное число в восьмеричной системе счисления находится в диапазоне от $1000_8$ до $7777_8$. В десятичной системе это числа от $512$ до $4095$:

$1000_8=512$
$7777_8=4095$.

Если запись числа в восьмеричной системе счисления оканчивается цифрой $1$, то при делении этого числа на $8$ остаток должен быть равен $1$.

Значит, для каждого введённого числа достаточно проверить два условия: $512 \leq x \leq 4095$ и $x \%\ 8 == 1$. Будем увеличивать счётчик на $1$, если оба условия выполняются. Ввод чисел продолжается до тех пор, пока не встретится число $0$.

count = 0
x = int(input())

while x != 0:
    if 512 <= x <= 4095 and x % 8 == 1:
        count += 1
    x = int(input())

print(count)

Для приведённого примера условию соответствуют числа $553$, $889$ и $3025$:

$553=1051_8$
$889=1571_8$
$3025=5721_8$.

Число $481=741_8$ является трёхзначным, а $4121=10031_8$ — пятизначным, поэтому они не подходят.

Таким образом, программа выведет: $3$.

Показать
Очки опыта 20
Спросить Зави
0 заданий сегодня

Предложить улучшение