Модуль: ЕГЭ-2022. Вопрос 14. Позиционные системы счисления


Задача

7 /11


Сколько таких цифр? Решаем программой

Теория Нажмите, чтобы прочитать/скрыть

Решение задачи с помощью программы

Многие языки программирования поддерживают работу с большими числами. Используя такие языки, можно решить подобные задачи, написав программу.
При использовании PascalABC.net можно воспользоваться типом System.Numerics.BigInteger (предназначенным для произвольно больших целых со знаком) и связанными с ним функциями. В связи с особенностями работы с числами, для вычисления степени необходимо использовать BigInteger.Pow(9,34).

Язык программирования Java также может работать с большими числами с помощью типа BigInteger.

Язык программирования Python позволяет работать с большими числами, как с "обычными". Поэтому можно даже не задумываться о том, что для этого требуется больше памяти.
 

Алгоритм 

1. В переменную сохранить результат заданного арифметического выражения.
2. Используя цикл while для имитации метода деления в столбик, вычисляем все цифры числа и считаем необходимые.

Некоторый синтаксис Python, необходимый для написания такого рода программ:

Арифметические операции
сложение - +
вычитание - -
возведение в степень - **
умножение- *
обычное деление - /
целочисленное деление - //
вычисление остатка от деления - %

В Python нет операторных скобок. Необходимо делать отступы для выделения тела цикла, развилок, подпрограмм. Рекомендуется использовать 4 пробела на каждый уровень отступа. 

 
Условия
if условие:
    действие
else:
    действие


Логические операции
отрицание - not
логические умножение - and
логическое сложение - or
равенство - ==
не равно - !=
 
Цикл while
while условие:
    тело_цикла


Цикл for
for i in range(start, finish, step):
    тело_цикла


Например, цикл по всем элементам массива A:
for i in range(len(A)):
    A[i] = ...


start - если не указан, то равен 0
step - если не указан, то равен 1.

Объявление массива размерностью n, с нулевыми начальными значениями
a = [0] * n


Пример
Значение арифметического выражения: \(49^7 + 7^{21} – 7 \)– записали в системе счисления с основанием 7. Сколько цифр 6 содержится в этой записи?
При вычислении цифр в системе счисления с основанием 7, необходимо находить остаток при делении числа на 7. Само число делим постоянно на 7, пока не получим 0. 
n = 49**7 + 7**21 - 7
k6 = 0
while n!=0:    # можно написать короче: while n:
  if n % 7 == 6: 
    k6 += 1    # сокращение от k6 = k6 + 1
  n //= 7    # сокращение от n = n // 7
print(k6)

Если вы не знакомы с синтаксисом Python, но хотите его использовать для решения задач ЕГЭ, то у нас есть Курсы и Учебник, с помощью которых вы быстро освоите синтаксис.

Задача

Результат арифметического выражения \(9^9 – 3^9 + 9^{19} – 19 \) записали в троичной системе счисления. Напишите программу, которая определит количество цифр "2", "1" и "0"в результирующем числе. Выведите ответ в одной строке, через пробел, в указанном порядке.