recherche nombre premier - Algo - Programmation
Marsh Posté le 04-12-2005 à 17:52:43
Moi je ferais
Code :
|
avec la même signification pour I
Marsh Posté le 04-12-2005 à 18:32:52
Ouais enfin square_root, parce que square ça veut dire ^2.
Marsh Posté le 04-12-2005 à 18:39:56
crapodesiles a écrit : |
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 : |
oui, mais tu es prié de le prouver mathématiquement d'abord
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.
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 ?. |
Le petit théorème de Fermat est une condition nécessaire mais non suffisante pour qu'un nombre soit premier.
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.
Marsh Posté le 04-12-2005 à 14:02:56
voila un bout de mon code :
votre opinion ?
est ce que dans ma boucle le test de fin peut etre sqrt(n) ??