У меня слишком большое число (1500+) цифр, и мне нужно найти 2 ** это число по модулю 1_000_000_000, поэтому я написал этот питон:
n = 1
return_value = 2
while n < To_the_power_of:
return_value *= 2
return_value = return_value % 1_000_000_000
n += 1
Это возвращает правильное значение для меньших значений,но занимает слишком много времени для больших значений.
Если число по модулю 10, вы получаете этот шаблон, который можно использовать.
2 ** 1 modulo 10 = 2
2 ** 2 modulo 10 = 4
2 ** 3 modulo 10 = 8
2 ** 4 modulo 10 = 6
2 ** 5 modulo 10 = 2
2 ** 6 modulo 10 = 4
2 ** 7 modulo 10 = 8
2 ** 8 modulo 10 = 6
Я надеюсь, что аналогичный шаблон может быть использованответить на исходную задачу.