PHP Loop Learning 11: So ermitteln Sie Primzahlen, drucken Primzahlen von 1 bis 100 und zählen ihre Zahlen

青灯夜游
Freigeben: 2023-03-12 07:50:02
Original
3967 Leute haben es durchsucht

Im vorherigen Artikel „PHP Loop Learning 10: Bestimmen Sie die Anzahl der Narzissen und drucken Sie die Anzahl aller Narzissen aus“ haben wir Ihnen die Methode vorgestellt, die Anzahl der Narzissen zu bestimmen und mithilfe einer Schleife die Anzahl aller Narzissen auszugeben . Lassen Sie uns die PHP-Schleife fortsetzen. Um zu lernen, stellen wir vor, wie man ermittelt, ob eine Zahl eine Primzahl ist, und wie man eine Primzahl von 1 bis 100 ausgibt. Interessierte Freunde können mehr darüber erfahren~

Lassen Sie uns zunächst verstehenWas ist eine Primzahl?

Primzahl (Primzahl) bezieht sich auf eine natürliche Zahl, die nicht durch andere Zahlen außer 1 geteilt werden kann, und wenn sie durch andere Zahlen geteilt werden kann, wird sie als zusammengesetzte Zahl bezeichnet (1 ist keine Primzahl). noch eine zusammengesetzte Zahl).

Zum Beispiel: Die Zahlen 2, 3, 17 und 19 sind alle Primzahlen, sie können nur durch 1 und sich selbst teilbar sein.

Wenn also eine Zahl num (zum Beispiel 17) gegeben ist, wie bestimmen wir dann, ob diese Zahl num eine Primzahl ist? Hier sind einige Methoden, die wir Ihnen vorstellen möchten:

Methode 1: Die einfachste Methode besteht darin, basierend auf der Definition von Primzahlen zu finden.

Denken:

  • Primzahlen können nur durch 1 und sich selbst teilbar sein Das heißt, sie können nur durch 2 zweitklassig teilbar sein.

  • Also verwenden wir eine Schleife, um N zu dividieren, indem wir jede natürliche Zahl verwenden, die größer als 1 und kleiner oder gleich N ist, und zählen, wie oft sie dividiert wird. Wenn die Zahl größer als 2 ist, ist sie nicht a Primzahl; wenn sie gleich 2 ist, ist sie eine Primzahl.

Werfen wir einen Blick auf den Implementierungscode:

<?php
header("content-type:text/html;charset=utf-8");
$num=17;
$count = 1;
for($i = 2; $i <= $num; $i++) {
    if(($num % $i)== 0)
        $count ++;
}
if($count == 2) {
    echo $num . &#39;就是素数<br/>&#39;;
}else{
	echo $num . &#39;不是素数<br/>&#39;;
}
?>
Nach dem Login kopieren

Ausgabeergebnis:

PHP Loop Learning 11: So ermitteln Sie Primzahlen, drucken Primzahlen von 1 bis 100 und zählen ihre Zahlen

Methode 2:

Idee: Verwenden Sie eine Zahl, um 2 durch sqrt(diese Zahl)< zu dividieren /code >, wenn es teilbar ist, bedeutet dies, dass die Zahl keine Primzahl ist, andernfalls ist sie eine Primzahl. <code>sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

下面来看看实现代码:

<?php
header("content-type:text/html;charset=utf-8");
$num=19;
$flag = 1;
for($i = 2; $i*$i <= $num; $i++) //能被2 - sqrt(i)整除的数
{
	if($num % $i == 0)
	{
		$flag = 0;
		break;
	}
}
if($flag == 1) {
    echo $num . &#39;就是素数<br/>&#39;;
}else{
	echo $num . &#39;不是素数<br/>&#39;;
}
?>
Nach dem Login kopieren

输出结果:

PHP Loop Learning 11: So ermitteln Sie Primzahlen, drucken Primzahlen von 1 bis 100 und zählen ihre Zahlen

好了知道怎么给定一个数来判断是不是素数了,下面加大难度:怎么给定一个范围(例如1~100),输出全部素数呢?

是不是要使用两个循环,在上面for循环的基础上,在外面套一层for循环来控制范围即可。我们来看看实现代码(直接使用方法2的代码):

<?php
header("content-type:text/html;charset=utf-8");
$count = 0;
for($k = 2; $k <= 100; $k++){ //从2开始,遍历到100
	$flag = 1;
	for($i = 2; $i*$i <= $k; $i++) {//能被2 - sqrt(i)整除的数
	
		if($k % $i == 0)
		{
			$flag = 0;
			break;
		}
	}
	if($flag == 1) {
	    echo $k . &#39;是素数<br/>&#39;;
		$count ++;
	}
}
echo &#39;<br/>1~100间共有 &#39;.$count." 个素数";
?>
Nach dem Login kopieren

输出结果:

PHP Loop Learning 11: So ermitteln Sie Primzahlen, drucken Primzahlen von 1 bis 100 und zählen ihre Zahlen

可以看出,我们在内层for循环的循环体中,使用一个计数器$count

Werfen wir einen Blick auf den Implementierungscode:

rrreeeAusgabeergebnis:

PHP Loop Learning 11: So ermitteln Sie Primzahlen, drucken Primzahlen von 1 bis 100 und zählen ihre Zahlen

Da Sie nun wissen, wie Sie bei gegebener Zahl feststellen können, ob eine Zahl eine Primzahl ist, machen wir es schwieriger: Wie gibt man einen Bereich an (z. B. 1 ~100) und alle Primzahlen ausgeben?

Sollten wir zwei Schleifen verwenden? Basierend auf der for-Schleife oben, fügen Sie einfach eine for-Schleife außerhalb ein, um den Bereich zu steuern. Werfen wir einen Blick auf den Implementierungscode (direkt unter Verwendung des Codes von Methode 2): 🎜rrreee🎜Ausgabeergebnis: 🎜🎜PHP Loop Learning 11: So ermitteln Sie Primzahlen, drucken Primzahlen von 1 bis 100 und zählen ihre Zahlen🎜🎜Es ist ersichtlich, dass wir im Schleifenkörper der inneren for-Schleife einen Zähler $count verwenden , und jedes Mal, wenn es ausgegeben wird Nach einer Primzahl wird es um 1 erhöht, sodass Sie zählen können, wie viele Primzahlen es zwischen 1 und 100 gibt. 🎜🎜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 Loop Learning 11: So ermitteln Sie Primzahlen, drucken Primzahlen von 1 bis 100 und zählen ihre Zahlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!