请问有大佬愿意帮我看看哪里错了吗,谢谢
查看原帖
请问有大佬愿意帮我看看哪里错了吗,谢谢
157639
lxhhhh楼主2019/2/14 12:36

请问有大佬愿意帮我看看哪里错了吗,谢谢。

它总是显示原文件未编译。o(╥﹏╥)o

qwq

下面是代码:

#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以上偶数时 
	}
}
2019/2/14 12:36
加载中...