本文目錄一覽:
- 1、用PHP語言編程求100~200間的全部素數
- 2、php判斷一個數是否為素數
- 3、php編程輸出100以內的素數
- 4、在php中怎麼用函數實現 輸出1-100 中的質數(素數,只能被1和本身整除的數)
- 5、在php環境下,編寫程序頁面求100到200之間的質數(素數)
用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