社区讨论
奇怪的编译错误
学术版参与者 4已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @ltjtcnph
- 此快照首次捕获于
- 2024/03/09 16:18 2 年前
- 此快照最后确认于
- 2024/03/09 18:12 2 年前
版本
CPPMinGW 13.2.0#include<iostream>
#include<cmath>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std;
void shai(int);
bool b[1000002];
vector<int> pr;
vector<int> pri;
bool isp[114514];
int l,u;
int minn,maxn;
int main(){
shai(50000);
while(cin>>l>>u){
memset(b,1,sizeof(b));
pri.clear();
for(auto &i:pr){
for(int j=(l+i-1)/i*i;j<=u;j+=i)
if(i!=j)
b[i-l]=0;
}
for(int i=l;i<=u;++i){
if(b[i-l])
pri.push_back(i);
}
if(pri.size()<2){
cout<<"There are no adjacent primes.\n";
continue;
}
minn=0x7fffffff,maxn=0;
for(int i=1;i<=pri.size();++i){
minn=min(minn,pri[i]-pri[i-1]);
maxn=max(maxn,pri[i]-pri[i-1]);
}
for(int i=1;i<=pri.size();++i){
if(pri[i]-pri[i-1]==minn){
cout<<pri[i-1]<<','<<pri[i]<<" are closest, ";
break;
}
}
for(int i=1;i<=pri.size();++i){
if(pri[i]-pri[i-1]==maxn){
cout<<pri[i-1]<<','<<pri[i]<<" are most distant.\n";
break;
}
}
}
return 0;
}
void shai(int n){
for(int i=2;i<=n;++i){
if(!isp[i])
pr.push_back(i);
for(auto &pri_j:pr){
if(i*pri_j>n)
break;
isp[i*pri_j]=1;
if(i%pri_j==0)
break;
}
}
}
编译产生
ld returned 1 exit status 的错误。可是我并没有没关掉的任务啊。
有没有大佬能解释一下。
回复
共 8 条回复,欢迎继续交流。
正在加载回复...