Там в математическом «трюк» вы можете использовать, если вы можете предположить, что все параметры целые числа.
Рассмотрим следующую операцию по модулю:
(а * х + у)% х
Очевидно, что а * х часть может быть отброшен, и имеет место следующее:
(а * х + у)% х = у й%
Имея это в виду, мы можем предположить, большое число только а * х + у, и мы можем выполнять по модулю на любом этапе, и так часто, как нам нравится, так, чтобы получить результат, который вы хотите, сделайте следующее:
function modulo (n, p, m){
var result = 1;
while(p--) {
result = (result * n) % m;
}
return result;
}
console.log(modulo(7, 16971, 25777));
Вы ищете [* модульное возведение в степень *] (https://en.wikipedia.org/wiki/Modular_exponentiation), и это не относится к JavaScript. – Bergi
@ Lưu Vĩnh Phúc Почему этот дубликат? он помечен javascript –
, потому что алгоритм является агностиком языка, это чистая математика. – Bergi