FONCTION QUI VÉRIFIE SI L'ARGUMENT EST UN NOMBRE PREMIER

Signaler
Messages postés
16
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
9 août 2010
-
Messages postés
3
Date d'inscription
vendredi 14 août 2015
Statut
Membre
Dernière intervention
16 août 2015
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52148-fonction-qui-verifie-si-l-argument-est-un-nombre-premier

Messages postés
3
Date d'inscription
vendredi 14 août 2015
Statut
Membre
Dernière intervention
16 août 2015

La fonction dit que 0 et 1 sont premiers et 2 ne l'est pas. C'est le contraire.
La fonction dit que 9 n'est pas premier parce que le test sur $sqrt est fait avec === et pas ==.
Messages postés
3
Date d'inscription
vendredi 14 août 2015
Statut
Membre
Dernière intervention
16 août 2015

sauf que il y a un return avant le break. Le break n'est jamais exécuté.
Messages postés
75
Date d'inscription
samedi 3 décembre 2005
Statut
Membre
Dernière intervention
30 juin 2013

en tout cas merci a tous pour ce moment de rêve que j'ai passé a lire les commentaires de cette source
Messages postés
79
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
31 octobre 2011
2
DARKELDA j'apprécis que t'ais pris en compte nos remarques :)
alors petit rajout à faire histoire de ne pas perdre du précieux temps de calcul : il faut rajouter une condition avant la boucle for (j'ai fait la même erreur dans mon exemple que j'ai rectifié dans mon dernier commentaire) car il ne sert à rien de rentrer dans la boucle for si $_nombre est pair ou un carré...
je te conseil donc de rassembler les conditions précédente dans un if(condition1 || condition2) suivi d'un else{for...

voilà c'est une petite optimisation non négligable pour un benchmark future ;)

en tout cas merci pour cette contribution et n'hésite pas à venir poster sur Codes-Sources : une source est toujours améliorable et tu pourras ainsi apprendre beaucoup de petites choses :-)
Afficher les 44 commentaires