ホームページ >バックエンド開発 >PHPの問題 >PHP ループ学習 11: 素数を決定する方法、1 から 100 までの素数を出力する方法、およびその数を数える方法

PHP ループ学習 11: 素数を決定する方法、1 から 100 までの素数を出力する方法、およびその数を数える方法

青灯夜游
青灯夜游オリジナル
2021-08-23 12:00:534082ブラウズ

前回の記事「PHPループ学習10:水仙の数を求めてすべての水仙の数を出力する」では、水仙の数を求め、ループを使って水仙の数を求める方法を紹介しました。すべての水仙の数を出力します。メソッド、引き続き PHP ループについて学習し、数値が素数であるかどうかを判断し、1 から 100 までの素数を出力する方法を紹介します。興味のある友達はそれについて学ぶことができます~

まずは知ってみましょう 素数とは何ですか?

素数 (素数) とは、1 とそれ自身以外の他の数では割り切れない自然数を指し、他の数で割り切れる場合はそう呼ばれます。合成数 (規定) 1 は素数でも合成でもない)。

例: 数値 2、3、17、および 19 はすべて素数であり、これらは 1 とそれ自体でしか割ることができません。

では、数値 num (たとえば、17) が与えられた場合、この数値 num が素数であるかどうかをどのように判断するのでしょうか。 ここで、いくつかの方法を紹介します。

方法 1: 最も簡単な方法は、素数の定義に基づいて見つけることです。

考え方:

  • 素数は 1 とそれ自体でしか割り切れません。つまり、2 倍でしか割り切れません。

  • そこで、ループを使用して、1 より大きく N 以下のすべての自然数を使用して N を除算し、除算された回数を数えます。 2 より大きい場合は素数ではありませんが、2 に等しい場合は素数です。

実装コードを見てみましょう:

<?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;;
}
?>

出力結果:

PHP ループ学習 11: 素数を決定する方法、1 から 100 までの素数を出力する方法、およびその数を数える方法

# # 方法 2:

アイデア: 2 を

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;;
}
?>

出力結果:

PHP ループ学習 11: 素数を決定する方法、1 から 100 までの素数を出力する方法、およびその数を数える方法

さて、これで、数値には素数が与えられます。もっと難しくしてみましょう:

範囲 (1 ~ 100 など) を与えてすべての素数を出力するにはどうすればよいですか?

2 つのループを使用しますか? 上記の 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." 个素数";
?>

出力結果:

PHP ループ学習 11: 素数を決定する方法、1 から 100 までの素数を出力する方法、およびその数を数える方法

次のようになっていることがわかります。内側の for ループ ループ本体では、カウンター

$count が使用されており、素数が出力されるたびに 1 ずつ増加し、1 から 100 までの素数がいくつあるかを数えることができます。

わかりました。これですべてです。他に知りたいことがある場合は、これをクリックしてください。 → →

php ビデオ チュートリアル

推奨: PHP 面接の質問の概要 (コレクション)>>

以上がPHP ループ学習 11: 素数を決定する方法、1 から 100 までの素数を出力する方法、およびその数を数える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。