Решение задачи с помощью программы
Многие языки программирования поддерживают работу с большими числами. Используя такие языки, можно решить подобные задачи, написав программу.
При использовании
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, но хотите его использовать для решения задач ЕГЭ, то у нас есть
Курсы и
Учебник, с помощью которых вы быстро освоите синтаксис.