Tant que j'y suis j'aurais une autre petite question ...
On a le théorème suivant :
un nombre n supèrieur ou égal à 2 est premier si et seulement si il n'admet pas de divieur premier différent de 1 tel que d²<=n.
Et dans le programme pour déterminer si le nombre est premier ou pas, voilà ce qu'on fait :
-s'il est pair, alors il n'est pas premier
- sinon tant que 2k+1 ² est plus petit ou égal à n, on regarde s'il divise n.
Si oui alors le nombre est premier.
Si non, alors notre nombre est premier
mais j'ai l'impression que avec cet algorithme, on peut avoir la situation suivante :
un nombre peut admettre un diviseur. Le programme dira que ce nombre est premier mais ce diviseur n'est pas forcément premier ...
Voilà le programme en complet :
Prgm
Local r,k
Mod(n,2)->r
1_>k
while (2k+1)²<=n and r<>0
mod(n,2k+1)->r
k+1->k
endwhile
if r<>0 then disp 'premier' else disp 'non premier'
Endprgm
Merci d'avance en tout cas !
