recherche nombre premier

recherche nombre premier - Algo - Programmation

Marsh Posté le 04-12-2005 à 14:02:56    

voila un bout de mon code :
 

Code :
  1. // la partie facile ..
  2. si n<2 alors
  3.   retourner faux
  4. fin si
  5. si n == 2
  6.   retourner vrai
  7. fin si
  8. si (n modulo 2) == 0
  9.   retourner faux
  10. fin si
  11. // la partie compliqué
  12. pour i de 2 jusqu'a I(n/2)I (partie entiere de n/2)   // j'hesite avec racine carre de n sqrt(n)  
  13. si (n != i) et (n modulo i) ==0
  14.     retourner faux
  15.   fin si
  16. fin pour
  17. retourner vrai
  18. FIN


 
votre opinion ?
est ce que dans ma boucle le test de fin peut etre sqrt(n) ??

Reply

Marsh Posté le 04-12-2005 à 14:02:56   

Reply

Marsh Posté le 04-12-2005 à 17:52:43    

Moi je ferais  

Code :
  1. pour i de 3 a I(square(n)) par pas de 2

avec la même signification pour I

Reply

Marsh Posté le 04-12-2005 à 18:32:52    

Ouais enfin square_root, parce que square ça veut dire ^2.

Reply

Marsh Posté le 04-12-2005 à 18:39:56    

crapodesiles a écrit :


votre opinion ?


 
trop lourd. A quoi ça sert de tester à la main des choses qui marchent dans le cas général ? (n%2)
 

crapodesiles a écrit :


est ce que dans ma boucle le test de fin peut etre sqrt(n) ??


 
oui, mais tu es prié de le prouver mathématiquement d'abord :o


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 04-12-2005 à 19:47:32    

Ton code à l'air de renvoyer un booléen, il te sert à rechercher des nombres premiers ou à les tester ?.
Car si tu dois juste verifier si un nombre est premier il y a peut-etre pas nécessairement besoin d'une boucle, suffit d'appliquer le théorème de fermat.  

Reply

Marsh Posté le 04-12-2005 à 20:25:51    

tropicano a écrit :

Ton code à l'air de renvoyer un booléen, il te sert à rechercher des nombres premiers ou à les tester ?.
Car si tu dois juste verifier si un nombre est premier il y a peut-etre pas nécessairement besoin d'une boucle, suffit d'appliquer le théorème de fermat.


 
Le petit théorème de Fermat est une condition nécessaire mais non suffisante pour qu'un nombre soit premier.

Reply

Marsh Posté le 04-12-2005 à 20:34:14    

Il y a le crible d'Eratostène qui n'est pas très performant.
 
Récemment, l'algorithme AKS (Agrawal -Kayal -Saxena) permet de déterminer en temps polynomial si un nombre est premier.
 
Enfin, il y a le test de Rabin-Miller qui lui est probabiliste. On n'est pas sûr à 100% de la primalité. Par contre il est à l'heure actuel l'un des plus rapides.


Message édité par pains-aux-raisins le 04-12-2005 à 20:37:42
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed