[悬2关]质数筛
查看原帖
[悬2关]质数筛
765461
zhangmingsheng3521楼主2023/11/26 13:56

rt.要制作一个能输出前n-1个质数的质数筛,当输入的n<5时没有任何问题,n>=5后直接爆炸.能找出实质问题给1关,能帮忙调对给2关,最多得2关.

#include"bits/stdc++.h"
int primes[10003];
bool isprime[1000003];//0=shi,1=bushi
int n,place,s;
void judge(int x)
{
	if (isprime[x]) 
	{
		judge(x+1);
		return;
	}
	primes[++place]=x;
	s=x;
	while (s<1000000)
	{
		s+=x;
		isprime[s]=true;
	}
	if (place==n-1) return;
	judge(x+1);
	return;
}
int main()
{
	std::cin>>n;
	judge(2);
	for (int i=1;i<n;i++) printf("%d",primes[i]);
	return 0;
}
2023/11/26 13:56
加载中...