Rumah >pembangunan bahagian belakang >masalah PHP >Pembelajaran Gelung PHP 11: Bagaimana untuk menentukan nombor perdana, mencetak nombor perdana dari 1 hingga 100, dan mengira nombornya
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 . '就是素数<br/>'; }else{ echo $num . '不是素数<br/>'; } ?>
Hasil keluaran:
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 . '就是素数<br/>'; }else{ echo $num . '不是素数<br/>'; } ?>
Hasil keluaran:
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 . '是素数<br/>'; $count ++; } } echo '<br/>1~100间共有 '.$count." 个素数"; ?>
Hasil output:
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!