记录编号 576665 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 [模板]求素数 最终得分 100
用户昵称 Gravatarqyd 是否通过 通过
代码语言 C++ 运行时间 8.653 s
提交时间 2022-10-14 22:08:14 内存使用 201.71 MiB
显示代码纯文本
#include<iostream>
using namespace std;
int p[46000001]={};  //对1~n编号,0代表是素数,1代表合数; 
int prime[23000001]; int num=0;  //用于表示第num个素数;
int main()
{
	freopen("sssxmoban.in","r",stdin);
	freopen("sssxmoban.out","w",stdout);
	
	int N;
	cin>>N;
	cout<<N<<endl;

	for(int i=2;i<=N;i++)  //线性筛;
	{
		if(p[i]==0)   
		{
			num++;
			prime[num]=i;
		}	     
		  
	    for(int j=1;j<=num&&i*prime[j]<=N;j++)  //从第一个素数开始尝试; 
	    {
	    	p[i*prime[j]]=1;
	    	
	    	if(i%prime[j]==0)
	    	  break;    	
		}
    }
    
	for(int i=1;i<=num;i++)
	  cout<<prime[i]<<" ";     
	
    return 0;
}