Maison > Article > développement back-end > Boucle PHP apprentissage huit : comptez le nombre de nombres parfaits de 1 à 10 000 et affichez tous les nombres parfaits
Dans l'article précédent "PHP Loop Learning 7 : Deux méthodes pour imprimer une table arithmétique rapide 9*9", nous avons présenté comment utiliser les boucles for et while pour imprimer la table de multiplication 99. Continuons à comprendre la boucle PHP et introduisons la méthode permettant de juger si un nombre donné est un nombre complet. Les amis intéressés peuvent en apprendre davantage ~
Tout d'abord, comprenonsQu'est-ce qu'un nombre parfait ?
Nombre parfait Le nom complet est Nombre parfait Si un nombre est exactement égal à la somme de ses facteurs, alors le nombre est appelé « nombre parfait ». (Un facteur fait référence à un diviseur autre que lui-même.)
Par exemple : 6=1+2+3, 6 est un nombre parfait.
Donc, si un nombre num (par exemple, 6) est donné, comment pouvons-nous juger si le nombre num est complet ?
Idées :
1. Décomposez le nombre num en facteurs, c'est-à-dire trouvez tous les nombres qui peuvent diviser num sauf lui-même. (Cela nécessite l'utilisation de boucles).
Nous prenons la boucle for comme exemple. Parce que 1 peut diviser n'importe quel entier, la condition initiale de la boucle est définie 2 Après avoir trouvé les facteurs, vous devez ajouter ces facteurs et les résumer. Cela nécessite une variable $sum pour recevoir le résultat du calcul. Puisqu'il s'agit d'une addition, $sum peut se voir initialement attribuer une valeur de 0. 3. Déterminez si $sum et $num sont égaux, $num est un nombre parfait. Le code d'implémentation est donné ci-dessous : Regardez les résultats de sortie : Maintenant que nous savons comment juger si un nombre est complet, augmentons la difficulté : Sortez une plage donnée (seulement 1 ~10 000 Okay) tous des nombres parfaits. Analyse : il y a une plage de 1 à 10 000, puis nous utilisons une boucle for pour limiter la plage, nous pouvons donc ajouter une boucle for en dehors du code ci-dessus : Regardez le résultat de sortie : Et s'il existe de nombreuses plages données et que vous voulez savoir combien il y a de nombres parfaits ? Vous pouvez ajouter un compteur $b à l'instruction if Chaque fois qu'un nombre complet est généré, $b augmentera de 1. Regardez le résultat : OK, c'est fait ! Tous les nombres parfaits compris entre 1 et 10 000 sont générés et le nombre de nombres parfaits est compté. D'accord, c'est tout. Si vous voulez savoir autre chose, vous pouvez cliquer ici. → →Tutoriel vidéo PHP Recommandation :"Collection de questions d'entretien PHP (collection)"i=1
et le diviseur ne peut pas être num lui-même, donc la condition de restriction est i$num=6;
for($i=1;$i<$num;$i++){
if($num%$i==0){//分解因数
}
}
$num=6;
$sum=0;
for($i=1;$i<$num;$i++){
if($num%$i==0){//分解因数
$sum=$sum+$i; //各因数相加,求和
}
}
<?php
header("Content-type:text/html;charset=utf-8");
for($a=1;$a<=10000;$a++){
$sum=0;
for($i=1;$i<$a;$i++){
if($a%$i==0){//分解因数
$sum=$sum+$i; //各因数相加,求和
}
}
if($sum==$i){//如果这个数等于本身 则为完数
echo "$i 是完数!<br>";
}
}
?>
<?php
header("Content-type:text/html;charset=utf-8");
$b=0;
for($a=1;$a<=10000;$a++){
$sum=0;
for($i=1;$i<$a;$i++){
if($a%$i==0){//分解因数
$sum=$sum+$i; //各因数相加,求和
}
}
if($sum==$i){//如果这个数等于本身 则为完数
echo "$i 是完数!<br>";
$b++;
}
}
echo "<br>1~10000范围内有:$b 个完数。";
?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!