萌新求助:第三个测试点过不去,输出的答案是对的
查看原帖
萌新求助:第三个测试点过不去,输出的答案是对的
486166
Incin楼主2021/7/15 22:18
#include<bits/stdc++.h>
#define MAX 1000100
using namespace std;
bool isprime[MAX];
int prime[MAX];
int N,n=0,sum =0;
void findprime()
{
	memset(isprime,true,sizeof(isprime));
	
	for(int i =2;;i++)
	{
		
		if(isprime[i])
		{
			sum+=i;
			
			if(sum<=N)
			{
				prime[++n] = i;
			}
			else
			{
				break;
			}
		}
	
		for(int j =1;j<=n;j++)
		{
			isprime[i*prime[j]] = false;
			if(i%prime[j] == 0)
			break;
		}
	}	
} 
int main()
{
	cin>>N;
	findprime();
	for(int i =1;i<=n;i++)
	{
		cout<<prime[i]<<endl;
	}
	cout<<n<<endl;
	return 0;
}
2021/7/15 22:18
加载中...