问题描述
我一直在使用优化的筛分方法来获得质数。我不知道我的代码出了什么问题。完成sieve方法后,我的程序终止了,不知道为什么。请提出解决方案。它不需要输入int t变量,而只是终止。 这是我在C ++中的代码:
using namespace std;
#define lim 1000000
bool p[1000001];
vector<int> primes;
void seive(){
memset(p,sizeof(p));
p[2] = 1;
primes.push_back(2);
for(int i=3;i<=lim;i+=2){
p[i] = 1;
}
for(int i=3;i<=lim;i+=2){
if(p[i]){
primes.push_back(i);
for(int j=i*i;j<=lim;j+=(2*i))
p[j] = 0;
}
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
seive();
int t; cin>>t;
while(t--){
int n; cin>>n;
int ans;
if(p[n]){
ans = 1 + func(n-1);
}
else{
ans = func(n);
}
cout<<ans<<"\n";
}
return 0;
}```
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)