Les nombres premiers

Soyez le premier à donner votre avis sur cette source.

Snippet vu 2 749 fois - Téléchargée 26 fois

Contenu du snippet

Un petit code qui cherche les nombres premiers de 0 à $max.
rappel : les nombres premiers sont les nombres qui ne sont divisibles que par un et par eux-mêmes.

c un bon exemple pour commencer avec les boucles :-)

Source / Exemple :


<?
$max = 10000;

for($i = 2; $i <= $max; $i++) {

$j = 2;

// calcul de la racine de $i
$k = sqrt($i);

while(!($i%$j) && $j < $k) {
$j++;
}

if($j > $k) {
echo $i."<br>";
}

}
?>

A voir également

Ajouter un commentaire Commentaires
Messages postés
16
Date d'inscription
samedi 7 février 2004
Statut
Membre
Dernière intervention
29 octobre 2006

si je peux vous donnez un ptit conseil...
Si vous voulez faire des programmes a pour des calculs mathématiques etc,.. et qui prennent beaucoup de ressources système, je vous conseille vraiment d'essyer de les faire avec le langage 'python'... www.python.org c un langage HYPER simple et très performant...
Sinon ben merci à vous tous pour les sources php qui sont pour la plupart géniales !!
@+.
Rob.

PS: Vive le php... et bon courage pr le python !!! :D
Messages postés
385
Date d'inscription
mardi 15 octobre 2002
Statut
Membre
Dernière intervention
19 décembre 2017

faire un break dans un for, je trouve que c pas très "propre", autant utiliser les structures adaptées.
Messages postés
365
Date d'inscription
vendredi 24 mai 2002
Statut
Membre
Dernière intervention
18 octobre 2004

Pour les nombres parfaits... aucun langage n'est adapté ;)

En ce qui concerne la for (), un break; suffit à sortir.
Messages postés
385
Date d'inscription
mardi 15 octobre 2002
Statut
Membre
Dernière intervention
19 décembre 2017

je suis d'accord avec toi pour le $i % $j (je connaissais pas), mais le while à l'avantage par rapport au for parce que la boucle s'arrête dès que le prog trouve que le nombre n'est pas premier.

lol g aussi fait un script pour les nombres parfait, et c'était aussi un peu lent. c pas avec php qu'il faut faire ces scripts!
Messages postés
365
Date d'inscription
vendredi 24 mai 2002
Statut
Membre
Dernière intervention
18 octobre 2004

Je propose deux alternatives à ton code (il faudrait tester pour savoir ce qui est le plus performant) :
Une For() au lieu d'une While().
$i % $j !=0 au lieu de $i/$j != round($i/$j)

J'avais aussi voulu faire le même script mais pour trouver la liste des nombres parfaits... ;)
Et ça prenait un temps fou ! J'ai donc du utiliser la fonction set_time_limit() pour que mon script ne s'arrête pas au bout de 30 secondes.
Une autre limite que j'ai rencontré : la limite du type float de PHP.
J'ai du alors utiliser la libraire BC Math (=nombres de grande taille) mais ça non plus ça n'a pas suffit ;) Pour aller plus loin, il faudrait utiliser la librairie GMP (qui il me semble est illimitée)...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.