zoukankan      html  css  js  c++  java
  • 筛选法求n以内所有的素数

    求n以内所有的素数?

    筛选法:将2到n中所有的数都列出来,然后从2开始,先化掉所有2的倍数,然后每次从下一个剩下的数(必然是素数)开始,划掉其内所有的倍数,最后剩下来的数就都是素数

     例:13  红色为删除的元素

    第一轮 2的倍数: 2 3 4 5 6 7 8 9 10 11 12 13

    第二轮 3的倍数: 2 3 4 5 6 7 8 9 10 11 12 13

    第三轮 5的倍数: 2 3 4 5 6 7 8 9 10 11 12 13

    。。。。。

     1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int n,i,j;
     8 
     9     cin >> n;
    10 
    11     int *p = new int[n + 1];
    12 
    13     for (i = 0; i <= n; ++i)
    14         p[i] = 1;
    15 
    16 
    17     for (i = 2; i <= n; ++i)
    18     {
    19         if (p[i])
    20         {
    21             for (j = 2; i*j <= n; ++j)
    22                 p[i*j] = 0;
    23         }
    24     }
    25 
    26     for (i = 2; i <= n; ++i)
    27         if (p[i])
    28             cout << i << " ";
    29 
    30     cout << endl;
    31 
    32     delete[] p;
    33 
    34     return 0;
    35 }
  • 相关阅读:
    PG中 generate_series函数的使用
    代码搜索神器ag
    效率神器2
    效率神器
    Django-cookie组件
    Django-form组件
    Django组件-分页器
    Django与Ajax
    Django-模型层
    Django-模板层
  • 原文地址:https://www.cnblogs.com/cdp1591652208/p/7461181.html
Copyright © 2011-2022 走看看