parcequegaelainsiste

This commit is contained in:
SombrAbsol 2024-01-23 19:46:26 +01:00
parent ca57df0a07
commit 90062b6d4d

View File

@ -5,17 +5,17 @@
long long int calculmodulo(long long int nb, long long int d, long long int n) { long long int calculmodulo(long long int nb, long long int d, long long int n) {
long long int resultat = 1; long long int resultat = 1;
// Utilisation de l'algorithme d'exponentiation rapide pour gerer les grands nombres /*Utilisation de l'algorithme d'exponentiation rapide pour gerer les grands nombres */
while (d > 0) { while (d > 0) {
// Si le bit de droite de d est 1 (d est impair) /* Si le bit de droite de d est 1 (d est impair) */
if (d % 2 == 1) { if (d % 2 == 1) {
resultat = (resultat * nb) % n; // Multiplier le resultat par nb et prendre le modulo n resultat = (resultat * nb) % n; /* Multiplier le resultat par nb et prendre le modulo n */
} }
d = d / 2; // Diviser d par 2 (decalage d'octets vers la droite) d = d / 2; /* Diviser d par 2 (decalage d'octets vers la droite) */
nb = (nb * nb) % n; // elever nb au carre et prendre le modulo n nb = (nb * nb) % n; /* elever nb au carre et prendre le modulo n */
// Lignes ajoutées pour illustrer le processus /* Lignes ajoutées pour illustrer le processus */
printf("d = %lld, nb = %lld, resultat = %lld\n", d, nb, resultat); printf("d = %lld, nb = %lld, resultat = %lld\n", d, nb, resultat);
} }