au vu de cette recherche, il parait clair que nous en avons plus que suffisamment de topics sur les nbr premiers.
Cette source ne sera pas conservée.
bilaloch
Messages postés556Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention31 octobre 20191 24 déc. 2006 à 13:41
Ok merci pour toutes ces precisions :)
BILALoch
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 24 déc. 2006 à 12:14
Mieux: sans racine carrée:
while ((i < sqrt(N)) && (N % i != 0))
devient
while ((i*i < N) && (N % i != 0))
ceci dit, c'est <= il me semble. si tu tests la primalité de 9, je pense que ton algo dira qu'il est premier, or c'est 3 * 3 (sqrt(9) doit être testé, c'est ça que je veux dire).
et bon, clairement, l'algo est trop lent, mais ça, c'est une histoire de débuts, et si t'es vrmnt passioné par les nb premiers (ça va vite ^^), tu en découvriras plein d'autres. c'est amusant, et il y a dejà des bouquins entiers de commentaires sur les nb premiers sur les codes de cppfrance :p
Aussi, un commentaire général: ça sert à rien de poster le code source d'entrées/sorties console je trouve: ce qui pourrait intéresser les gens si l'algo était rapide, c'est une fonction toute probpre bool isPrime(int n), pas tout le reste. Dans cette forme-ci, c'est rebutant.
Bonne prog :)
bilaloch
Messages postés556Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention31 octobre 20191 23 déc. 2006 à 19:16
Merci pour ce commentaire. J'ameliorerais le code normalement durant ces jours-ci :)
Je mettrai un nouveau algorithme.
Merci encore...
BILALoch =)
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 23 déc. 2006 à 19:14
Je trouve que l'algorithme que tu a utilisé n'est vraiment pas super : tester tous les diviseurs, c'est par exemple doubler le temps de calcul car à chaque fois tu teste les diviseurs de deux (2, 4, 6, 8, ...).
Ensuite, à chaque itération de ta boucle, tu recalcule la racine carrée. Il serait mieux de ne la calculer qu'une seule fois, car normalement elle ne change pas.
Je te conseillerais de regarder les autres algorithmes sur ce site, il y en a pas mal qui utilisent la technique du crible d'eratosthène, qui est bien plus rapide que la tienne.
Sinon, c'est la première fois que je dit ça, je trouve que tes goto sont vraiment très spaghettis (tu va d'un côté, tu revient de l'autre, et tu resaute...), et c'est pas très très compréhensible.
Je te met 6, à cause de ton algorithme qui n'est vraiment pas très perfectionné...
bilaloch
Messages postés556Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention31 octobre 20191 23 déc. 2006 à 18:54
25 déc. 2006 à 19:13
BILALoch
25 déc. 2006 à 14:59
au vu de cette recherche, il parait clair que nous en avons plus que suffisamment de topics sur les nbr premiers.
Cette source ne sera pas conservée.
24 déc. 2006 à 13:41
BILALoch
24 déc. 2006 à 12:14
while ((i < sqrt(N)) && (N % i != 0))
devient
while ((i*i < N) && (N % i != 0))
ceci dit, c'est <= il me semble. si tu tests la primalité de 9, je pense que ton algo dira qu'il est premier, or c'est 3 * 3 (sqrt(9) doit être testé, c'est ça que je veux dire).
et bon, clairement, l'algo est trop lent, mais ça, c'est une histoire de débuts, et si t'es vrmnt passioné par les nb premiers (ça va vite ^^), tu en découvriras plein d'autres. c'est amusant, et il y a dejà des bouquins entiers de commentaires sur les nb premiers sur les codes de cppfrance :p
Aussi, un commentaire général: ça sert à rien de poster le code source d'entrées/sorties console je trouve: ce qui pourrait intéresser les gens si l'algo était rapide, c'est une fonction toute probpre bool isPrime(int n), pas tout le reste. Dans cette forme-ci, c'est rebutant.
Bonne prog :)
23 déc. 2006 à 19:16
Je mettrai un nouveau algorithme.
Merci encore...
BILALoch =)
23 déc. 2006 à 19:14
Ensuite, à chaque itération de ta boucle, tu recalcule la racine carrée. Il serait mieux de ne la calculer qu'une seule fois, car normalement elle ne change pas.
Je te conseillerais de regarder les autres algorithmes sur ce site, il y en a pas mal qui utilisent la technique du crible d'eratosthène, qui est bien plus rapide que la tienne.
Sinon, c'est la première fois que je dit ça, je trouve que tes goto sont vraiment très spaghettis (tu va d'un côté, tu revient de l'autre, et tu resaute...), et c'est pas très très compréhensible.
Je te met 6, à cause de ton algorithme qui n'est vraiment pas très perfectionné...
23 déc. 2006 à 18:54
BILALoch