Il y a un « truc » mathématique que vous pouvez utiliser, si vous pouvez supposer tous les paramètres sont entiers.
Tenir compte de l'opération modulo suivante:
(a * x + y)% x
De toute évidence, le a * x partie peut être mis au rebut et suivantes est remplie:
(a * x + y)% x = y x%
Dans cet esprit, on peut supposer le grand nombre est juste a * x + y, et nous pouvons effectuer le modulo à tout moment, et aussi souvent que nous aimons, donc, pour obtenir le résultat que vous veulent, faites ceci:
function modulo (n, p, m){
var result = 1;
while(p--) {
result = (result * n) % m;
}
return result;
}
console.log(modulo(7, 16971, 25777));
Vous êtes à la recherche [* exponentiation modulaire *] (https://en.wikipedia.org/wiki/Modular_exponentiation), et ce n'est pas spécifique à JavaScript. – Bergi
@ Lưu Vĩnh Phúc Pourquoi ce doublon? il est marqué javascript –
parce que l'algorithme est agnostique, c'est un calcul pur. – Bergi