Bonjour, j'essaye de calculer le modulo, le programme s'execute correctement mais le résultat de modulo est faux je voix pas ou est le problème. merci d'avance
voici le programme
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include<math.h>
int Random (int _iMin, int _iMax)
{
return (_iMin + (rand () % (_iMax-_iMin+1)));
}
int main( int argc, char *argv[] )
//int main (void)
//void main()
{
long int unsigned n,m,p,g,z,y,iRandom; /* n variable destinée à contenir les entiers inférieurs m */
printf("\n\n Introduire la valeure de m: \n\n m=");
scanf("%ld",&m);
printf("\n Les nombres premiers inferieurs ou égal à m sont:\n\n 1 , 2");/* Les deux premiers nombres premiers sont affichés */
/* Pour les entiers entre 3 et m, on vérifie s'ils ont un diviseur autre que 1 */
for (n = 3; n <= m; n++)
{
long int unsigned i;
for (i = 2; i*i <= n; i++)
if (!(n%i))
break;
if (i*i > n)
printf(" , %ld" , n);
}
{
printf("\n\n\n Choisissez parmis les nombres ci dessous la valeur de p:\n\n p=");
scanf("%ld",&p);
printf("\n\n Introduire une valeur g inferieur à p-1:\n\n g=");
scanf("%ld",&g);
/***************************************GENERATION D'UN NOMBRE ALEATOIRE**********************************/
printf("\n\n***********Génération d'un nombre aléatoire inferieur à p-2***********\n");
srand (time (NULL));
iRandom = Random (1,p-2);
printf ("\n\n Donc le nombre aléatoire est:\n\n Random: %d", iRandom);
// getch();
//return 0;
// scanf("%ld",&iRandom);
}
/************************************LA PUISSANCE**************************************************/
printf("\n\n******************Calcul de la puissance*******************");
printf( "\n\n %ld puissance %ld = %lf\n", g, iRandom, pow(g,iRandom) );
printf("\n\n y= %lf", pow(g,iRandom));
//scanf("%lf",&y);
/***********************************MODULO******************************************** ********/
z=y%p;
// printf("\n\n la clé publique est:%ld", z);
printf("\n\n Voici ma clé publique: z = %ld ",z);
return 0;
}
Afficher la suite