• Prelude


    线性筛素数qwqqqq

    (其实我是懒得写的.....做了两个小时的立体几何要炸了。。。)

    emmmmm其实这题我确实想到了筛法qwqqqq

    然后当时就这样想的:这方法gg没当面讲过   没讲过那么大部分人都不知道   不知道做出来的人应该很少   人很少而且我做对了 gg会让我讲思路  可是我懒得讲  于是  它就完美的超时了

    (其实好吧都是借口

    简单描述一下这道题(忘记拷题目辽。。)

    给定一个范围1~N,求其中素数的个数。

    N超级大大大大大!!!

    第一眼是不是感觉超级水。。虽然事实证明真的很水(大家估计都会做orzzzzz)

    因为素数的倍数一定不是素数

    所以我们用一个长度为N+1的数组保存信息,先假设所有的数都是素数,从第一个素数2开始,把2的倍数都标记为非素数,一直到大于N;然后进行下一趟,找到2后面的下一个素数3,进行同样的处理,直到最后,数组中依然为0的数即为素数。

    然后别忘了特殊处理一下1就好了qwqqq

    (代码不是自己的....容忍一下的懒惰//捂脸

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    char a[30000005];
    long long tot = 1;
    int main()
    {
           //freopen("prime.in","r",stdin);
        //freopen("prime.out","w",stdout);
        int l;
        cin>>l;
        memset(a,48,sizeof(a));
        for(int i = 3;i <= l;i += 2)
        {
            if(a[i] == '0')
            {
                tot++;
                for(int j = i;j <= l;j += 2 * i)
                {
                    a[j] = '1';
                }
            }
        }
        cout<<tot<<endl;
        return 0;
    }

    几何有毒www

  • 相关阅读:
    9.16动手又动脑
    C#中集合的交集:Intersect问题
    LeetCode Easy: 27. Remove Element
    LeetCode Easy: 26.Remove Duplicates from Sorted Array
    LeetCode Easy: 21. Merge Two Sorted Lists
    LeetCode Easy: 20. Valid Parentheses
    LeetCode Easy: 14. Longest Common Prefix
    LeetCode Easy: 13. Roman to Integer
    LeetCode Easy: Palindrome Number
    DL: 初试 tensorflow
  • 原文地址:https://www.cnblogs.com/Grigory/p/10111277.html
Copyright © 2020-2023  润新知