php输出1000以内质数(素数)示例

要输出1000以内的质数,可以使用以下的php代码:

<?php
for ($i = 2; $i <= 1000; $i++) {
    $isPrime = true;
    for ($j = 2; $j < $i; $j++) {
        if ($i % $j == 0) {
            $isPrime = false;
            break;
        }
    }
    if ($isPrime) {
        echo $i . " ";
    }
}
?>

这个代码使用了两个for循环。外层的for循环从2开始,遍历到1000。内层的for循环从2开始,一直遍历到$i-1。如果在内层循环中发现$i可以被$j整除,说明$i不是质数,将$isPrime标志设置为false。如果内层循环遍历完成后$isPrime仍然为true,说明$i是质数,将其输出。

我们可以在这段代码中添加一些注释,让代码更易于理解:

<?php
for ($i = 2; $i <= 1000; $i++) {
    // 假设$i是质数
    $isPrime = true;
    for ($j = 2; $j < $i; $j++) {
        // 如果发现$i可以被$j整除,说明$i不是质数
        if ($i % $j == 0) {
            $isPrime = false;
            break;
        }
    }
    // 如果在内层循环中没有发现$i可以被整除的数,则$i是质数,将其输出
    if ($isPrime) {
        echo $i . " ";
    }
}
?>

这段代码可以输出1000以内的质数,结果如下:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997

另一种输出1000以内质数的方法是使用筛法(埃氏筛法或欧拉筛法)。

  • 埃氏筛法:先把2~n的各个数放入到一个数组中,然后从2开始,将每个素数的倍数都标记成合数。依次遍历素数的倍数,直到找到所有素数。具体实现可以参考下面的代码:
<?php
function eratosthenes($n) {
    $numbers = range(2, $n);
    $primes = [];

    while (!empty($numbers)) {
        $prime = array_shift($numbers);
        array_push($primes, $prime);

        $numbers = array_filter($numbers, function($value) use ($prime) {
            return ($value % $prime != 0);
        });
    }

    return $primes;
}

$primes = eratosthenes(1000);
echo implode(' ', $primes);
?>
  • 欧拉筛法:和埃氏筛法类似,但是能够过滤掉重复的数。具体实现可以参考下面的代码:
<?php
function euler($n) {
    $is_prime = array_fill(2, $n - 1, true);
    $primes = [];

    for ($i = 2; $i <= $n; $i++) {
        if ($is_prime[$i]) {
            array_push($primes, $i);
        }

        foreach ($primes as $prime) {
            $result = $i * $prime;
            if ($result > $n) {
                break;
            }
            $is_prime[$result] = false;

            if ($i % $prime == 0) {
                break;
            }
        }
    }

    return $primes;
}

$primes = euler(1000);
echo implode(' ', $primes);
?>

这两种方法的结果和第一种方法是相同的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php输出1000以内质数(素数)示例 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • php中cookie与session的区别点总结

    下面是“php中cookie与session的区别点总结”的详细攻略: 一、概述 Cookie和Session都是Web开发中的常用会话技术,用于保存用户的状态信息; Cookie是在客户端(浏览器)保存,在每次HTTP请求中都会发送给服务器; Session是在服务端保存,客户端(浏览器)只保存一个来自服务端的Session ID,每次请求时将Sessio…

    PHP 2023年5月24日
    00
  • 几篇关于无限分类算法的文章

    想要了解无限分类算法,首先需要了解什么是分类和分类算法。 分类和分类算法 分类是指将事物按照某种标准或属性分成若干类别的过程或结果。在编程领域中,分类可以用来对数据进行归纳,从而方便进行查询和处理。 分类算法则是特指一种通过算法和规则来将数据进行分类的技术。常见的分类算法包括决策树、支持向量机等。 无限分类算法 无限分类指的是可以无限嵌套的分类,即每个分类可…

    PHP 2023年5月26日
    00
  • PHP中常用的转义函数

    接下来是关于PHP中常用的转义函数的完整攻略。 转义函数简介 转义函数是指用来处理字符串转义问题的函数,主要用于处理数据在数据库操作、文件操作以及网络传输等情况下出现的不可打印字符和特殊字符问题,以及防止 SQL 注入攻击等问题。 常用的转义函数包括: addslashes() 函数:将字符串中的特殊字符进行转义,如:单引号、双引号、反斜杠等。 htmlsp…

    PHP 2023年5月26日
    00
  • PHP数组去重的更快实现方式分析

    PHP数组去重的更快实现方式分析 什么是数组去重? 在PHP开发中,有时候需要对一个数组进行去重,即将数组中重复的元素删除,使之变成没有重复元素的新数组。例如,对于数组a : [1, 2, 3, 2, 4, 1],进行去重后应该变为新数组b: [1, 2, 3, 4]。 方式一:使用array_unique函数 PHP中提供了一个专门用于数组去重的函数 ar…

    PHP 2023年5月26日
    00
  • PHP文件读写操作相关函数总结

    PHP文件读写操作相关函数总结 PHP作为一种Web开发语言,对于文件的读写操作自然是必不可少的。在本文中,我们将总结一些常用的PHP文件读写相关函数,以便开发者更好的熟悉这些函数,以及如何正确使用它们。 文件读操作 PHP文件读操作主要由 fopen、fgets、feof 以及 fclose 这些函数组成。其中,fopen 函数用来打开文件,fgets 函…

    PHP 2023年5月23日
    00
  • JS回调函数原理与用法详解【附PHP回调函数】

    JS回调函数原理与用法详解【附PHP回调函数】 什么是回调函数? 回调函数是指在一个函数中调用另一个函数时,将这个函数作为参数传递给被调用的函数,并在被调用的函数执行完毕后再执行这个作为参数传递进去的函数。最常见的情况是异步编程中,用于处理异步请求的回调函数。 JS中的回调函数 在JavaScript中,可以通过定义函数的方式来实现回调函数的功能。例如: f…

    PHP 2023年5月27日
    00
  • PHP回调函数及匿名函数概念与用法详解

    PHP回调函数及匿名函数概念与用法详解 PHP中回调函数和匿名函数是两个非常重要概念,对于编写高效、灵活的代码非常有帮助。本篇文章将从概念、用法、示例等方面详细讲解PHP中回调函数和匿名函数的应用。 1. 概念 回调函数 回调函数是指在调用一个函数的时候,将另一个函数作为参数传入,然后在函数内部执行这个函数。通俗地讲,就是在函数内部调用一个外部函数。 匿名函…

    PHP 2023年5月27日
    00
  • php将图片文件转换成二进制输出的方法

    当需要在PHP中将图片文件转换成二进制输出时,可以使用file_get_contents()函数将文件内容读取到一个字符串中,再使用base64_encode()函数对这个字符串进行编码,最后再通过输出流将编码后的字符串发送给客户端。 以下是详细的攻略: 1. 读取图片并进行编码 首先,可以使用file_get_contents()函数读取图片文件: $im…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部