Un nombre premier est un entier naturel, qui se divise seulement par 1 et lui-même.
Algorithme 1 : les diviseurs compris entre 2 et N-1 seront testés
les diviseurs compris entre 2 et N-1 seront testés
/**************************\ * nombre_premier1.c *\**************************//* algorithme : teste tous les diviseurs */#include<stdio.h>intmain(void){int i, nb, compter, test;
test = compter =0;printf("Entrez un nombre entier : ");if(scanf("%d",&nb)!=1)return-1;for(i =2; i < nb; i++, compter++)if(nb % i ==0)
test =1;if(!test)printf("%d nombre premier, nombre iterations = %d\n", nb, compter);elseprintf("%d n'est pas nombre premier, nombre iterations = %d\n", nb,compter);return0;}
Algorithme 2 : les diviseurs pairs ne seront pas testés, la recherche se limitant aux diviseurs impairs
les diviseurs pairs ne seront pas testés, la recherche se limitant aux diviseurs impairs
/**************************\ * nombre_premier2.c *\**************************//* algorithme : exclure les nombres pairs et * teste tous les diviseurs */#include<stdio.h>intmain(void){int i, nb, compter, test;
test = compter =0;printf("Entrez un nombre entier : ");if(scanf("%d",&nb)!=1)return-1;if(nb %2==0)
test =1;else{for(i =3; i < nb; i+=2, compter++)if(nb % i ==0)
test =1;}if(!test)printf("%d nombre premier, nombre iterations = %d\n",
nb, compter);elseprintf("%d n'est pas nombre premier, nombre iterations = %d\n",nb, compter);return0;}
Algorithme 3 : les diviseurs impairs jusqu'à la racine carrée du N seront testés
les diviseurs impairs jusqu'à la racine carrée du N seront testés
/**************************\ * nombre_premier3.c *\**************************//* algorithme : exclure les nombres pairs et * teste tous les diviseurs jusqu'à la racine carrée */#include<stdio.h>#include<math.h>intmain(void){int i, nb, compter, test,limite;
test = compter =0;printf("Entrez un nombre entier : ");if(scanf("%d",&nb)!=1)return-1;
limite =sqrt(nb)+1;if(nb %2==0)
test =1;else{for(i =3; i < limite; i+=2, compter++)if(nb % i ==0)
test =1;}if(!test)printf("%d nombre premier, nombre iterations = %d\n", nb, compter);elseprintf("%d n'est pas nombre premier, nombre iterations = %d\n",nb, compter);return0;}
Algorithme4 : arrêt du programme quand un diviseur est trouvé
arrêt du programme quand un diviseur est trouvé
/**************************\ * nombre_premier4.c *\**************************//* algorithme : exclure les nombres pairs et * teste tous les diviseurs jusqu'à la racine carrée * et sortie de la boucle au 1er diviseur trouvé */#include<stdio.h>#include<math.h>intmain(void){int i, nb, compter, test,limite;
test = compter =0;printf("Entrez un nombre entier : ");if(scanf("%d",&nb)!=1)return-1;
limite =sqrt(nb)+1;if(nb %2==0)
test =1;else{for(i =3; i < limite &&! test; i+=2, compter++)if(nb % i ==0)
test =1;}if(!test)printf("%d nombre premier, nombre iterations = %d\n", nb, compter);elseprintf("%d n'est pas nombre premier, nombre iterations = %d\n", nb, compter);return0;}