首页 > 代码库 > Chose_Prime

Chose_Prime

素数筛选

素数也叫质数,即只能被1和自己本身整除的数。在程序中,怎样筛选出在一定范围内中的素数呢?我们可以这样做:

① 先从2开始找,然后删去这一范围中所有能被2整除的数。

② 找到下一个没有被删去的数字n。

③ 删去这一范围内中所有能整除n的数。

④ 如果n*n>"范围最大值"就跳出,否则跳到第②步。

 

代码:

技术分享
 1 #include <iostream> 2 #define N 100001 3  4 using namespace std; 5  6 int prime[N]; 7  8 void Chose_Prime(int n) 9 {10     prime[0] = 1;11     prime[1] = 1;12     for (int i = 2; i * i <= n; i++)13     {14         if (prime[i] == 0)                          //找到了没有被删掉的数字i15         {16             for (int j = 2 * i; j <= n; j += i)17             {18                 prime[j] = 1;                       //prime数组里面值为0的便为素数19             }20         }21     }22 23     for (int i = 0; i < n; i++)                     //打印素数24     {25         if (prime[i] == 0)26         {27             cout << i << endl;28         }29     }30 }31 int main()32 {33     Chose_Prime(100);34     return 0;35 }
View Code

Chose_Prime