1 条题解

  • 0
    @ 2025-8-24 21:54:00

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar luoyoucheng
    **

    搬运于2025-08-24 21:54:00,当前版本为作者最后更新于2019-12-22 16:30:29,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    线性筛把素数筛出来,然后直接输出

    不说废话,把你们想要的代码送给你们

    #include<iostream>
    using namespace std;
    bool isComp[100000005];  //是不是素数
    int main ()
    {
    	int n,ans=0;
    	cin>>n;
    	isComp[1]=1;  //1的特判
    	for(int i=2;i*i<=n;i++) 
    	{ 
    	    if(isComp[i]==0)  //如果是素数
    	        for(int j=i*i;j<=n;j+=i) //将他的倍数记为合数
    	        	isComp[j]=1;   //标记
    	}
    	for(int i=1;i<=n;i++)
    	{
    		if(isComp[i]==0)  //如果是素数
    			ans++;
    	}
    	cout<<ans<<endl; //输出
    	return 0;  //华丽结束
    }
    

    不要脸地要个赞

    • 1

    信息

    ID
    2869
    时间
    2000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者