php求素数的技术博客问答,php判断一个数是不是素数

发布时间:2022-11-19

本文目录一览:

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