Afficher les n nombres premiers après x
schechtax
-
diablo13800 Messages postés 2890 Date d'inscription Statut Membre Dernière intervention -
diablo13800 Messages postés 2890 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je suis débutant en php et je dois réaliser un exercice : afficher les n nombres premiers après x (par exemple : afficher les 10 nombres premiers après 1000)
Voilà ce que j'ai fais, malheureusement la page ne me retourne que le 1er echo (echo "Les $nb nombres premiers après $nombre sont";) et rien après.
ma fonction de calcul des nombres premiers :
Je suis débutant en php et je dois réaliser un exercice : afficher les n nombres premiers après x (par exemple : afficher les 10 nombres premiers après 1000)
Voilà ce que j'ai fais, malheureusement la page ne me retourne que le 1er echo (echo "Les $nb nombres premiers après $nombre sont";) et rien après.
<html>
<head><title> Determine les Nombres Premiers </title></head>
<body>
<?php
include ('fonctions.php');
?>
<form method ="POST" action ="premiers.php">
<p>Entrez le nombre de départ (ex : 1000) : <input type ="integer" name ="start"/></p>
<p>Entrez le nombre de nombres premiers désirés (ex: 10): <input type="integer" name ="nb"/></p>
<input type="submit" name="valider" value="OK"/>
</form>
<?php
if (isset($_POST['valider'])){
$nombre=$_POST['start'];
$nb=$_POST['nb'];
echo "Les $nb nombres premiers après $nombre sont";
for ($i= $nombre +1; $i = $compteur ; $i++) {
$compteur = 0;
if (premiers($i)) {
echo "$i";
echo "<br />";
$compteur = $compteur +1;
}
}
}
?>
</body>
</html>
ma fonction de calcul des nombres premiers :
<?php
function premiers ($nombre){
//$compteur = 0:
$flag=true;
if ($nombre ==2){
$flag=false;
}
elseif (($nombre >2) && ($nombre%2==0)){
// Nombre pair different de 2
$flag=true;
// Nombre impair plus grand que 1
}
else{
for ($i=3; $i<$nombre; $i++){
$reste = $nombre%$i;
if ($reste == 0){
$flag=true;
break;
}
else{
$flag=false;
}
}
}
if ($flag==true){
$verdict = false;
}
elseif ($flag==false){
$verdict = true;
}
return $verdict;
}
?>
A voir également:
- Php nombre premier
- Nombre de jours entre deux dates excel - Guide
- Easy php - Télécharger - Divers Web & Internet
- Nombre facile - Télécharger - Outils professionnels
- Ascii nombre de caractères - Guide
- Expert php pinterest - Télécharger - Langages
2 réponses
edit :
je viens de me rendre compte que le compteur dans la boucle for se remets à 0 à chaque incrémentation, mais même en le sortant, ca ne marche toujours pas...
je viens de me rendre compte que le compteur dans la boucle for se remets à 0 à chaque incrémentation, mais même en le sortant, ca ne marche toujours pas...
Bonjour,
Cela est normal , votre boucle est plutôt ... fausse.
Vous devez Affichez NB nombre
Donc votre boucle for doit ressembler a quelque chose comme ça :
Ensuite vous avez votre nombre de départ qui est $nombre , vous pouvez lui l’incrémenter, cela changerais rien puisque plus d'affichage ou d'utilisation après votre for.
Donc "//votre code" deviendra quelque chose comme ca:
Pour expliquer, Tant que Nombre n'est pas premier on l’incrémente.
quand il est premier on sort du While et on l'affiche.
et ça on le fera nb Fois puisque dans la boucle "for".
J’espère avoir été assez clair,
Si il y a quelque chose que vous ne comprenez pas n'hésitez pas.
Cela est normal , votre boucle est plutôt ... fausse.
Vous devez Affichez NB nombre
Donc votre boucle for doit ressembler a quelque chose comme ça :
for($i=0;$i<nb;$i++){
//votre code
}
Ensuite vous avez votre nombre de départ qui est $nombre , vous pouvez lui l’incrémenter, cela changerais rien puisque plus d'affichage ou d'utilisation après votre for.
Donc "//votre code" deviendra quelque chose comme ca:
while(premier($nombre)==false){
$nombre++;
}
echo $nombre."<br/>";
Pour expliquer, Tant que Nombre n'est pas premier on l’incrémente.
quand il est premier on sort du While et on l'affiche.
et ça on le fera nb Fois puisque dans la boucle "for".
J’espère avoir été assez clair,
Si il y a quelque chose que vous ne comprenez pas n'hésitez pas.