117.info
人生若只如初见

C++实现素数筛选法

#include 
#include 

using namespace std;

void sieveOfEratosthenes(int n) {
    vector isPrime(n+1, true);
    
    for (int p = 2; p*p <= n; p++) {
        if (isPrime[p]) {
            for (int i = p*p; i <= n; i += p) {
                isPrime[i] = false;
            }
        }
    }
    
    for (int p = 2; p <= n; p++) {
        if (isPrime[p]) {
            cout << p << " ";
        }
    }
}

int main() {
    int n;
    cout << "Enter a number: ";
    cin >> n;
    
    cout << "Prime numbers up to " << n << " are: ";
    sieveOfEratosthenes(n);
    
    return 0;
}

此代码实现了素数筛选法,输出小于等于给定数n的所有素数。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe382AzsBBgJUBA.html

推荐文章

  • 如何管理C++项目中的模块

    管理C++项目中的模块可以通过以下几个步骤进行: 划分模块:首先需要根据项目的功能和需求,将项目划分为不同的模块。每个模块应该负责特定的功能,并且模块之间...

  • C++模块对性能有何影响

    C++模块对性能的影响取决于模块的设计、实现和使用方式。一般来说,使用C++模块可以提高程序的性能,因为C++是一种高效的编程语言,可以有效地利用计算机的资源。...

  • C++模块的优势有哪些

    模块化编程:C++模块允许将相关功能封装在一个独立的模块中,提高代码的可维护性和可重用性。 封装性:模块可以隐藏实现细节,只暴露接口给外部,提高代码的安全...

  • 如何在C++中使用模块

    在C++中使用模块(Modules)是通过引入C++20标准中的模块系统来实现的。模块提供了一种新的方式来组织和管理代码,可以帮助减少编译时间和提高代码的可重用性。<...

  • C++素数生成算法有哪些

    埃氏筛法(Sieve of Eratosthenes):该算法是一种简单且高效的素数生成算法。它的基本思想是从2开始,依次筛选出未被标记为非素数的数,直到筛选完成。筛选过程...

  • 如何判断C++中的素数

    以下是一个判断一个数是否为素数的C++程序示例:
    #include bool isPrime(int num) { if (num

  • C++新版本中图算法的更新与改进

    C++新版本中对图算法的更新和改进主要包括以下几个方面: 新的图算法库:C++新版本可能会引入新的图算法库,提供更丰富的图算法功能和更高效的图算法实现。这些新...

  • 图在C++网络编程中的作用

    在C++网络编程中,图可以用来表示网络拓扑结构,帮助开发人员理解网络中各个节点之间的关系和连接方式。通过图的数据结构,可以方便地实现网络中节点之间的通信和...