Мне показалось, что вот этот поворот
http://dxdy.ru/post1471189.html#p1471189 сюжета про последние цифры степенных башен тянет на более-менее содержательную задачу (во всяком случае, ее решение не кажется совсем уж очевидным). Итак:
Пусть
--- целое число, взаимно простое с
. Построим степенную башню с основанием
, т.е. рассмотрим последовательность
, заданную правилом:
Докажите, что для заданных натуральных
и
следующий алгоритм корректно вычисляет последние
десятичных цифр числа
:
Код:
A[1]:=a mod 10^l:
for j from 1 to n-1 do A[j+1]:=a&^A[j] mod 10^l; od:
print(A[n]);
(используется язык Maple; значок
нужен для того, чтобы не было переполнения).
Комментарий. а) При
этот алгоритм может врать. б) В алгоритме можно заменить модуль
на произвольный модуль
и, тем самым, пытаться вычислить
. Помимо серии
, есть и другие серии подобного вида, для которых вычисление
будет корректным, однако при случайном выборе модуля
ответ будет, скорее всего, неверным.