parcequegaelainsiste
This commit is contained in:
parent
ca57df0a07
commit
90062b6d4d
12
etape3.c
12
etape3.c
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user