Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembelajaran Gelung PHP 11: Bagaimana untuk menentukan nombor perdana, mencetak nombor perdana dari 1 hingga 100, dan mengira nombornya

Pembelajaran Gelung PHP 11: Bagaimana untuk menentukan nombor perdana, mencetak nombor perdana dari 1 hingga 100, dan mengira nombornya

青灯夜游
青灯夜游asal
2021-08-23 12:00:534029semak imbas

Dalam artikel sebelumnya "Pembelajaran Gelung PHP Sepuluh: Tentukan Bilangan Narcissus dan Cetak Bilangan Semua Narcissus", kami memperkenalkan kepada anda cara menentukan bilangan narcissus dan menggunakan gelung untuk menghasilkan nombor semua Kaedah narcissus, mari sambung belajar tentang gelung PHP dan perkenalkan cara untuk menentukan sama ada nombor adalah nombor perdana dan mengeluarkan nombor perdana dari 1 hingga 100. Rakan-rakan yang berminat boleh mempelajarinya~

Pertama sekali , mari belajar mengenainya Apakah nombor perdana?

Nombor perdana (nombor perdana) merujuk kepada nombor asli yang tidak boleh dibahagikan dengan nombor lain kecuali 1 dan dirinya sendiri jika ia boleh dibahagikan dengan nombor lain, ia dipanggil nombor komposit (ketetapan 1 bukan perdana mahupun komposit).

Contohnya: nombor 2, 3, 17, dan 19 adalah semua nombor perdana, ia hanya boleh dibahagi dengan 1 dan diri mereka sendiri.

Jadi jika nombor nombor (contohnya, 17) diberikan, bagaimanakah kita menentukan sama ada nombor nombor ini ialah nombor perdana? Berikut adalah beberapa kaedah:

Kaedah 1: Kaedah paling mudah ialah mencari

Berfikir:

  • Prime nombor hanya boleh dibahagi dengan 1 dan dirinya sendiri, iaitu, mereka hanya boleh dibahagi 2 kali.

  • Jadi kita menggunakan gelung untuk membahagi N dengan menggunakan setiap nombor asli yang lebih besar daripada 1 dan kurang daripada atau sama dengan N, dan mengira bilangan kali ia dibahagikan Jika nombor itu lebih besar daripada 2, ia bukan nombor perdana; jika ia sama dengan 2, maka ialah nombor perdana.

Mari kita lihat kod pelaksanaan:

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

Hasil keluaran:

Pembelajaran Gelung PHP 11: Bagaimana untuk menentukan nombor perdana, mencetak nombor perdana dari 1 hingga 100, dan mengira nombornya

Kaedah 2:

Idea: Gunakan nombor untuk membahagi 2 kepada sqrt(这个数) masing-masing Jika boleh dibahagikan sama rata, bermakna nombor itu bukan nombor perdana, jika tidak ialah nombor perdana.

Mari kita lihat kod pelaksanaan:

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

Hasil keluaran:

Pembelajaran Gelung PHP 11: Bagaimana untuk menentukan nombor perdana, mencetak nombor perdana dari 1 hingga 100, dan mengira nombornya

Baiklah, sekarang anda tahu cara menilai diberi nombor Adakah ia nombor perdana? Mari kita menjadikannya lebih sukar: Bagaimana untuk memberikan julat (seperti 1~100) dan mengeluarkan semua nombor perdana?

Adakah kita perlu menggunakan dua gelung berdasarkan gelung for di atas, hanya letakkan gelung for di luar untuk mengawal julat. Mari kita lihat kod pelaksanaan (secara langsung menggunakan kod kaedah 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." 个素数";
?>

Hasil output:

Pembelajaran Gelung PHP 11: Bagaimana untuk menentukan nombor perdana, mencetak nombor perdana dari 1 hingga 100, dan mengira nombornya

Seperti yang kita lihat, kita ada Dalam badan gelung gelung for, pembilang $count digunakan, yang bertambah sebanyak 1 selepas setiap nombor perdana dikeluarkan, supaya bilangan nombor perdana antara 1 dan 100 boleh dikira.

Itu sahaja jika anda ingin mengetahui perkara lain, anda boleh klik ini. → →tutorial video php

Disyorkan: Koleksi soalan temuduga PHP (koleksi)

Atas ialah kandungan terperinci Pembelajaran Gelung PHP 11: Bagaimana untuk menentukan nombor perdana, mencetak nombor perdana dari 1 hingga 100, dan mengira nombornya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn