6 条题解

  • 0
    @ 2023-10-4 18:39:21
    刚学的热乎的素数筛
    ```#include<stdio.h>
    #include<math.h>
    const int n=1e6+5;
    int box[1000000];
    void primes();
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	primes();
    	box[0]=1;
    	box[1]=1;
    	while(t--)
    	{
    		int cnt=0;
    		int m;
    		scanf("%d",&m);
    		for(int i=2;i<=m;i++)
    		{
    			if((box[i]==0&&box[i-1]==0)||(box[i]==0&&box[i-2]==0))
    			{
    				cnt++;
    			}
    		}
    		printf("%d\n",cnt);
    	}
    }
    
    void primes()
    {
    	for(int i=2;i<=n;i++)
    	{
    		if(box[i]==0)
    		{
    			for(int j=i+i;j<=n;j+=i)
    			{
    				box[j]=1;
    			}
    		}
    	}
    }
    ``````
    `````````
    

    信息

    ID
    128
    时间
    3000ms
    内存
    128MiB
    难度
    8
    标签
    (无)
    递交数
    1653
    已通过
    223
    上传者