Bonsoir à tous,
voilà, j'ai le code suivant (calcul de a^e mod m) en méthode récursive.
Seulement, quelquechose cloche, car je n'arrive pas à obtenir le bon résultat.
J'ai l'impression d'omettre certains termes dans le calcul final, mais je ne vois pas quoi.
Si quelqu'un pouvait m'aider ...
N.B : Par exemple, pour 17^27 mod 27, le résultat est 26, et avec l'algo précédent on obtient 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 unsigned int pModulaire(unsigned int a, unsigned int e, unsigned int m){ if(e==1){ return(a%m); }else{ if((e%2)==0){ return(pModulaire(a*a,e/2,m)); }else{ return(a*pModulaire(a*a,(e-1)/2,m)%m); } } }
Partager