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

PHP-Schleife lernt acht: Zählen Sie die Anzahl der perfekten Zahlen von 1 bis 10.000 und geben Sie alle perfekten Zahlen aus

青灯夜游
青灯夜游Original
2021-08-13 14:49:056360Durchsuche

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:


1. Zerlegen Sie die Zahl num in Faktoren, das heißt, finden Sie alle Zahlen, die num teilen können, außer sich selbst. (Dies erfordert die Verwendung von Schleifen).

Wir nehmen die for-Schleife als Beispiel. Da 1 jede ganze Zahl teilen kann, ist die Anfangsbedingung der Schleife festgelegt

; 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:


Sehen Sie sich die Ausgabeergebnisse an:

PHP-Schleife lernt acht: Zählen Sie die Anzahl der perfekten Zahlen von 1 bis 10.000 und geben Sie alle perfekten Zahlen aus

Da wir nun wissen, wie wir beurteilen können, ob eine Zahl vollständig ist, erhöhen wir den Schwierigkeitsgrad:

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:

PHP-Schleife lernt acht: Zählen Sie die Anzahl der perfekten Zahlen von 1 bis 10.000 und geben Sie alle perfekten Zahlen aus

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:

PHP-Schleife lernt acht: Zählen Sie die Anzahl der perfekten Zahlen von 1 bis 10.000 und geben Sie alle perfekten Zahlen aus

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. → →

php-Video-Tutorial

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn