[PHP] Nombres Premiers de 1à 100 [Résolu/Fermé]

Signaler
-
 Artésina -
Bonjour,

Je dois faire ce petit exercice: Afficher la listes des nombres premiers entre 1 et 100.

Je suis vraiment un débutant en PHP.

Mon prof ma donné un exemple de se que je dois faire (en pseudo-code):

AFFICHER "Voici la liste de nombres premiers entre 1 et 100"
POUR i=0; i<=100; i++

SI i==1
AFFICHER i
SINON
j = 2
TANT QUE i % j != 0
j = j + 1
FIN TANT

SI i = j
AFFICHER i
FIN SI
FIN SI

FIN POUR

En fonction de sa, j'ai essayé de réaliser le code PHP. J'ai déjà fait sa:

<?php
$j = 2;
echo "Voici la liste des nombres premiers entre 1 et 100 :";
echo "<br/>";
for ($i=0;$i<=100;$i++){
if ($i==1){
echo "$i";
echo "<br/>";
}else{

while ($i%$j!=0){
$j = $j + 1;
}
if ($i = $j){
echo "$i";
echo "<br/>";
}
}
}
?>

Le problème c'est que sa m'affiche tous les nombre de 1 à 100...

Où est mon erreur ?

Merci d'avance

3 réponses

Messages postés
14
Date d'inscription
lundi 14 juillet 2008
Statut
Membre
Dernière intervention
12 novembre 2009
7
salam alikoum mon frere votre erreur est dans l'instruction soulignée au dessous tu doit taper "==" au lieu de "=" si non le php effectue l'affectation au lieu de tester l'égalité se qui te donne tous les nombre de 1 à 100 :

<?php
$j = 2;
echo "Voici la liste des nombres premiers entre 1 et 100 :";
echo "<br/>";
for ($i=0;$i<=100;$i++){
if ($i==1){
echo "$i";
echo "<br/>";
}else{

while ($i%$j!=0){
$j = $j + 1;
}
if ($i = $j){
echo "$i";
echo "<br/>";
}
}
}
?>
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
14
Date d'inscription
lundi 14 juillet 2008
Statut
Membre
Dernière intervention
12 novembre 2009
7
salam alikoum samix je ne pense pas que c'est résolu, il y a une erreur dans l'algorithme il faut ajouter l'instruction soulignée au dessous :

<?php
$j = 2;
echo "Voici la liste des nombres premiers entre 1 et 100 :";
echo "<br/>";
for ($i=0;$i<=100;$i++){
if ($i==1){
echo "$i";
echo "<br/>";
}else{

while ($i%$j!=0){
$j = $j + 1;
}
if ($i = $j){
$j=2;
echo "$i";
echo "<br/>";
}
}
}
?>
Oui je l'ai rajoutée entre temps. Merci encore :)
Sa marche!! Merci beaucoup !!
Dans la liste obtenue, il n'y a pas que des nombres premiers, ex 35 ou 87, etc
il faut placer $j=2; plus loin :
... echo "<br/>";
}
$j=2;
}

}
?>
ça réassigne à $j sa valeur de départ au bon moment, et là, ça marche.