導航:首頁 > 編程語言 > php判斷素數

php判斷素數

發布時間:2022-07-01 15:14:20

A. 在php中怎麼用函數實現 輸出1-100 中的質數(素數,只能被1和本身整除的數)

用函數實現1-100中素數的演算法如下:

<?php //定義函數
function sushu() {
//求100以內質數

for ($i = 1; $i <= 100; $i++)

{

$k = 0;

for ($j = 1; $j < $i; $j++) {

if ($i % $j == 0) { $k++;}}

if ($k == 1) {

echo $i;

echo "&nbsp;&nbsp;";
}
}
}
sushu(); // 調用函數

?>

PHP相關知識拓展:

PHP 用戶定義函數:

除了內建的 PHP 函數,我們可以創建我們自己的函數。

函數是可以在程序中重復使用的語句塊。

頁面載入時函數不會立即執行。

函數只有在被調用時才會執行。

自定義函數方法:

<?php
function writeMsg() {
echo "Hello world!";
}

writeMsg(); // 調用函數

?>



B. php編程輸出100以內的素數

素數就是只能被 1 和它本身所整除的數。從2~100,逐個判斷素數,如果是素數,就列印,否則不列印。

源代碼如下:

#coding:utf-8

for i in range(2,101):

fg = 0

for j in range(2,i-1):

if i%j == 0:

fg = 1

break

if fg == 0:

print(i)

i = 2

c = []

while i <= 100:

j = 2

while j <= i:

if i % j == 0:

if i == j:

c.append(i)

break

j += 1

i += 1

print(c)

(2)php判斷素數擴展閱讀

a~b之間的素數的代碼

def su(a,b):

for i in range(a,b):

n = False #默認不是素數,如果是素數,跳出循環

for j in range(2,int(i**0.5)):

if i%j == 0:

n = True

break

if n == False:

print(i,end=" ")

su(100,200)

C. php判斷一個數是否為素數

functionselectnum($num){
for($j=2;$j<sqrt($num);$j++){
if($num%$j==0){
returnfalse;
}
}
returntrue;
}

判斷是不是 素數 ,若 返回true 就是 素數,因為 若一個數能被整除,那肯定就不是素數!!!

加平方根驗證(sqrt)的目的,是為了優化性能,因為:

如果它不是質數,那麼它應該可以表示成兩個非1非自身的數相乘。

而這兩個數,必然有一個大於平方根一個小於平方根,或者兩個都等於平方根。

下面是 獲取 1000000 內 所有的 素數 ,在PHP7下 能做到2.3秒, 在5下 不到4秒!

publicfunctiontest()
{
$start_time=microtime(true);
set_time_limit(0);
$num_max=1000000;
$arr=[];
for($i=1;($i*6)<=$num_max;$i++){
$base=$i*6;
$num=$base-1;
$sta=$this->testnum($num);
if($sta){
$arr[$num]=1;
}
$num=$base+1;
$sta=$this->testnum($num);
if($sta){
$arr[$num]=1;
}
}

$end=microtime(true);
$zong=$end-$start_time;
echo'開始'.$start_time.'<br/>';
echo'結束'.$end.'<br/>';
echo'用時'.$zong.'<br/>';
echo'共'.count($arr).'個素數';
}

functiontestnum($num){
for($j=2;$j<sqrt($num);$j++){
if($num%$j==0){
returnfalse;
}
}
returntrue;
}

D. php篩選法素數

  1. $d<=$sqrt 為什麼還要加上這個條件?
    減少循環的次數。

  2. /////////不是很理解這個continue2是什麼意思?
    跳出2重循環。也就是跳到for($i=2; $i<=$n; ++$i) 這個循環


E. PHP中關於判斷一個數是否是素數的表單操作,有個地方不知道該怎麼改

for語句缺少步長,你的代碼會進入死循環,下面的語句:
for($i=1;$i<=$n1;){
應該修改為:
for($i=1;$i<=$n1;$i++){

F. PHP模塊化素數驗證

//素數的驗證與獲取
//參數: 1.最小值(>=2) 2.最大值(>最小值) 3.返回數組指針,當參數不合法時不返回
function matchOne($min,$max,&$retData){

if(is_numeric($min) && $min > 1 && $min < $max && is_numeric($max)){
$data = array();
for($i = $min;$i<$max;$i++){
$c=0;
for($j=1;$j<=$i;$j++)
{
if(($i%$j)==0)
{
$c++;
}
}
if($c==2)
{
$data[] = $i;
}
}
$retData = $data;
return true;
}else{
return false;
}
}

function prt_array($value,$key){
if(is_array($value))
{
echo "[$key] => \n".print_m($value);
}else{
echo "[$key] => $value \n";
}
}
//print_r 函數的實現函數
function print_m($var){
if(is_array($var))
{
echo "Array\n(\n";
array_walk($var,"prt_array");
echo "\n)";
}
}
if($_GET['do'] == 'query')
{
$min = $_GET['minInput'];
$max = $_GET['maxInput'];
matchOne($min,$max ,&$data );
if(matchOne($min,$max ,&$data ))
{
print_m($data);
}else{
echo '輸入的必須是數字,或者大於1且最大值大於最小值的整數。';
}

}
echo '</br>';
echo '<form><input name="do" type="hidden" value="query"/>最小值:';
echo '<input name="minInput"/>最大值:<input name="maxInput"/><p>';
echo '<input type="submit" value="提交"/></p></form>';

G. 在PHP中,用自定義函數,用於判斷輸入的整數是否為質數。並輸出1-100之間所有的

//顯示1-100之間所有質數 並求和
function zishu() {
$sum=0;
for ($i = 1; $i <= 100; $i++)
{
$k = 0;
for ($j = 1; $j < $i; $j++)
{
if ($i % $j == 0) {
$k++;
}
}
if ($k == 1) {
echo $i;
echo " ";
$sum=$sum+$i;
}
}
echo '<br>';
echo '1-100所有質數和為:'.$sum;
}
zishu(); // 調用函數

H. 求救貼怎麼用PHP來判斷一個數是質數還是合數

質數是除了1和它本身之外,不能被其他數整除的正整數,又稱素數。
質數和合數的區別在於因數的個數,質數只有2個因數,合數有多於2個因數。
除1,0以外不是質數的正整數就是合數。
"0"「1」既不是質數也不是合數。
把情況想全了就除 判斷余數

I. 如何用PHP判斷 1-20中有多少個素數

function isprime($num)
{
for($i=2;$i<$num;$i++)
{
if($num % $i == 0)
return false;
}
return true;
}
function totprime($num)
{
$tot=0;
for($i=2;$i<=$num;$i++)
{
if(isprime($i))
{
$tot += 1;
}
}
return $tot;
}
echo(totprime(20));

閱讀全文

與php判斷素數相關的資料

熱點內容
多女主免費閱讀 瀏覽:49
前端程序員選擇極客時間 瀏覽:164
php我要自學網 瀏覽:201
a盤命令 瀏覽:706
日俄加密通話 瀏覽:660
linuxtee命令 瀏覽:53
pdf程序員找不到了 瀏覽:63
全球票房實時查詢 瀏覽:223
伺服器如何添加域用戶 瀏覽:271
java靜態static 瀏覽:227
程序員容易掉頭發嗎 瀏覽:333
python通用管理系統 瀏覽:204
apachephphtml 瀏覽:141
安慶智能雲伺服器找哪家 瀏覽:763
linuxtab輸入 瀏覽:932
小說網盤資源 瀏覽:504
全免費影視投屏網站 瀏覽:254
娘娘懷孕快生了忍著不生 瀏覽:804
git拉取代碼的命令 瀏覽:995
程序員節西安市 瀏覽:687