请问有大佬愿意帮我看看哪里错了吗,谢谢。
它总是显示原文件未编译。o(╥﹏╥)o
下面是代码:
#include<bits/stdc++.h>
using namespace std;
#define N 1000001
#define M 78500
int n,a,b,qwq[N]={0},prime[M]={0},prime_num=0,isnotprime[N]={1,1},f[M][M]={0};
void pre(){
for(int i=2;i<N;i++){
if(!isnotprime[i]){
prime[++prime_num]=i;
}
for(int j=1;j<=prime_num&&i*prime[j]<N;j++){
isnotprime[i*prime[j]]=1;
if(!(i%prime[j])){
break;
}
}
}
for(int i=1;i<=prime_num;i++){
qwq[prime[i]]=1;
}
}//线性筛素数
int main(){
pre();//跑一遍1-1000000,筛出素数
while(1){
scanf("%d",&n);
if(n==0){
return 0;
}//n=0时结束
bool flag=true;
for(int i=3;i<=n;i+=2){
if(qwq[i]==1&&qwq[n-i]==1){
flag=false;
a=i;
b=n-i;
break;
}//i和n-i都是素数,记录下来
}
if(flag==false){
printf("%d = %d + %d\n",n,a,b);
}//输出上面得到的答案
if(flag==true){
printf("Goldbach's conjecture is wrong.\n");
}//n不为4以上偶数时
}
}