C++ 程序,实现埃拉托斯特尼筛法在给定范围内生成素数


这是 C++ 程序,用于实现埃拉托斯特尼筛法在给定范围内生成素数。此方法中,所有元素都初始化为零的整数数组。

它遵循每个非素数元素索引在嵌套循环中标记为 1 的情况。素数是指那些索引被标记为 0 的数。

算法

Begin
   Declare an array of size n and initialize it to zero
   Declare length, i, j
   Read length
   For i = 2 to n-1 do
      For j = i*i to n-1 do
         Arr[j-1]=1
      Done
   Done
   For i =1 to n do
      If(arr[i-1]==0)
         Print i
   Done
End

示例代码

#include <iostream>
const int len = 30;
int main() {
   int arr[30] = {0};
   for (int i = 2; i < 30; i++) {
      for (int j = i * i; j < 30; j+=i) {
         arr[j - 1] = 1;
      }
   }
   for (int i = 1; i < 30; i++) {
      if (arr[i - 1] == 0)
         std::cout << i << "\t";
   }
}

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

输出

1 2 3 5 7 11 13 17 19 23 29

更新于: 2019-07-30

2 千次以上查看

开始你的 职业

通过完成该课程获得认证

开始
广告