Heim > Artikel > Backend-Entwicklung > PHP-Schleife lernt acht: Zählen Sie die Anzahl der perfekten Zahlen von 1 bis 10.000 und geben Sie alle perfekten Zahlen aus
Im vorherigen Artikel „PHP-Loop-Lernen 7: Zwei Methoden zum Drucken einer 9*9-Schnellarithmetiktabelle“ haben wir vorgestellt, wie man for-Schleifen und while-Schleifen zum Drucken der 99-Multiplikationstabelle verwendet. Lassen Sie uns weiterhin die PHP-Schleife verstehen und die Methode zur Beurteilung vorstellen, ob eine bestimmte Zahl eine vollständige Zahl ist. ~
Lassen Sie uns zunächst verstehen, was eine perfekte Zahl ist.
Perfekte Zahl Der vollständige Name lautet Perfekte Zahl Wenn eine Zahl genau der Summe ihrer Faktoren entspricht, wird die Zahl als „perfekte Zahl“ bezeichnet. (Ein Faktor bezieht sich auf einen anderen Teiler als sich selbst.)
Zum Beispiel: 6=1+2+3, 6 ist eine perfekte Zahl.Wenn also eine Zahl num (zum Beispiel 6) angegeben ist, wie beurteilen wir dann, ob die Zahl num vollständig ist?
Ideen:; Auf diese Weise ist der Rahmen der for-Schleife grob ~i=1
$num=6; for($i=1;$i<$num;$i++){ if($num%$i==0){//分解因数 } }2 Nachdem Sie die Faktoren gefunden haben, müssen Sie diese Faktoren hinzufügen und zusammenfassen. Dazu ist eine Variable $sum erforderlich, um das Berechnungsergebnis zu erhalten. Da es sich um eine Addition handelt, kann $sum zunächst der Wert 0 zugewiesen werden.
$num=6; $sum=0; for($i=1;$i<$num;$i++){ if($num%$i==0){//分解因数 $sum=$sum+$i; //各因数相加,求和 } }3. Bestimmen Sie, ob $sum und $num gleich sind. Wenn sie gleich sind, ist $num eine perfekte Zahl. Der Implementierungscode ist unten angegeben:
Geben Sie einen bestimmten Bereich aus (nur 1 ~10000 Okay) alles perfekte Zahlen.
Analyse: Es gibt einen Bereich von 1 bis 10000, dann verwenden wir eine for-Schleife, um den Bereich zu begrenzen, sodass wir außerhalb des obigen Codes eine for-Schleife hinzufügen können:<?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>"; } } ?>Sehen Sie sich das Ausgabeergebnis an:
Das Was ist, wenn es viele vorgegebene Bereiche gibt und Sie wissen möchten, wie viele perfekte Zahlen es gibt? Sie können der if-Anweisung einen Zähler $b hinzufügen. Jedes Mal, wenn eine vollständige Zahl ausgegeben wird, erhöht sich $b um 1.
<?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 个完数。"; ?>Sehen Sie sich die Ausgabe an: OK, fertig! Alle vollkommenen Zahlen zwischen 1 und 10.000 werden ausgegeben und die Anzahl der vollkommenen Zahlen wird gezählt. Okay, das ist alles. Wenn Sie noch etwas wissen möchten, können Sie hier klicken. → →
Empfehlung:"Sammlung von PHP-Interviewfragen (Sammlung)"
Das obige ist der detaillierte Inhalt vonPHP-Schleife lernt acht: Zählen Sie die Anzahl der perfekten Zahlen von 1 bis 10.000 und geben Sie alle perfekten Zahlen aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!