Bonjour,
J'ai fais une fonction qui permet de calculer un nombre avec un très grand exposant sur un grand modulo. Pour un système de cryptographie.
Voici ma fonction :
unsigned long long int puisd(int x, int y, int z)
{
unsigned long long int res=1;
while (y>0) {
if ((y%2)==1) {
res=(res*x)%z;
y--;
}
else {
x=(x*x)%z;
y=(y/2);
}
}
return res;
}
Donc x = le nombre en question, y = l'exposant, et z = le modulo.
Alors pour 17266^28549 modulo 94631, soit puisd(17266,28549,94631), il m'affiche : 27938.
Mais je sais pas comment prouver que mon résultat est correct : \.
Donc ce serait pour demander si mon code est t-il bon ?
Merci d'avance, cya
Configuration: Windows Vista
Safari 525.19