php求素數的技術博客問答,php判斷一個數是不是素數

本文目錄一覽:

用PHP語言編程求100~200間的全部素數

   ?php

    $ss = 100;                        //聲明變量$ss,賦初值為最小的素數 

    $max = 200;                    //聲明變量$max,賦值為最大的範圍 

    $arr = array();                    //聲明一個數組$arr

    echo $max.”以內的素數為:”; 

    while($ss  $max):                //判斷變量是否在允許的範圍內 

        $boo = false;                //聲明一個布爾變量$boo,初值為false 

        foreach($arr as $value):        //使用foreach語句遍歷$arr數組 

            if($ss % $value == 0):    //如果變量$ss 能夠被數組元素整除                

    $boo = true;        //將布爾變量賦值為true 

            break;                //跳出當前循環 

            endif; 

        endforeach; 

        if(!$boo):                    //判斷變量$boo值 

            echo $ss.” “;        //如果$boo為假,則說明當前變量$ss為素數,輸出素數 

            $arr[count($arr)] = $ss;//同時存到數組中 

        endif; 

        $ss++;                      //變量$ss加1 

    endwhile;      

?

php判斷一個數是否為素數

function selectnum($num){

    for ($j = 2; $j  sqrt($num); $j++) {

        if ($num % $j == 0) {

            return false;

        }

    }

    return true;

}

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

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

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

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

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

public function test()

{

    $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) . ‘個素數’;

}

function testnum($num){

    for ($j = 2; $j  sqrt($num); $j++) {

        if ($num % $j == 0) {

            return false;

        }

    }

    return true;

}

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)

擴展資料

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)

在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(); // 調用函數

?

在php環境下,編寫程序頁面求100到200之間的質數(素數)

?php

for ($i=100; $i = 200; $i++) {

$flag = 0; //用於做個標識

for ($j=2; $j $i; $j++) {

if ($i % $j == 0) {

$flag = 1; //如果$i為質數 則 標識改變 在下面不會輸出

break;

}

}

if ($flag == 0) {

echo $i . “br /”;

}

}

原創文章,作者:XBEE,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/137640.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
XBEE的頭像XBEE
上一篇 2024-10-04 00:17
下一篇 2024-10-04 00:17

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有着廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • Python熱重載技術

    Python熱重載技術是現代編程的關鍵功能之一。它可以幫助我們在程序運行的過程中,更新代碼而無需重新啟動程序。本文將會全方位地介紹Python熱重載的實現方法和應用場景。 一、實現…

    編程 2025-04-29
  • Python計算中文字符個數

    本文將從多個方面對Python計算中文字符個數進行詳細的闡述,包括字符串長度計算、正則表達式統計和模塊使用方法等內容。 一、字符串長度計算 在Python中,計算字符串長度是非常容…

    編程 2025-04-29
  • Python包絡平滑技術解析

    本文將從以下幾個方面對Python包絡平滑技術進行詳細的闡述,包括: 什麼是包絡平滑技術? Python中使用包絡平滑技術的方法有哪些? 包絡平滑技術在具體應用中的實際效果 一、包…

    編程 2025-04-29
  • Python實現統計100以內能被7整除的數字個數

    本文將從以下幾個方面詳細闡述如何使用Python來實現統計100以內能被7整除的數字個數。具體內容包括: 一、range函數 Python中的range函數是用來生成一個數字序列的…

    編程 2025-04-28
  • Python計算個數函數用法介紹

    本文將對Python中計算個數的函數進行詳細講解,包括內置函數、常用模塊和自定義函數,並給出完整的代碼示例。 一、內置函數 Python內置了多個計算個數的函數,包括len()、c…

    編程 2025-04-28
  • 如何輸出100到200之間的素數?

    輸出100到200之間的素數是一個常見的問題,這裡將介紹一種偽代碼實現。 一、素數的定義 素數是只能被1和本身整除的整數。比如2、3、5、7、11等都是素數,而4、6、8、9等就不…

    編程 2025-04-28
  • 微信小程序重構H5技術方案設計 Github

    本文旨在探討如何在微信小程序中重構H5技術方案,以及如何結合Github進行代碼存儲和版本管理。我們將從以下幾個方面進行討論: 一、小程序與H5技術對比 微信小程序與H5技術都可以…

    編程 2025-04-28
  • parent.$.dialog是什麼技術的語法

    parent.$.dialog是一種基於jQuery插件的彈出式對話框技術,它提供了一個方便快捷的方式來創建各種類型和樣式的彈出式對話框。它是對於在網站開發中常見的彈窗、提示框等交…

    編程 2025-04-28

發表回復

登錄後才能評論