读书人

poj 2262水题素数有关问题

发布时间: 2012-10-09 10:21:45 作者: rapoo

poj ——2262水题素数问题

void oddp(){int i,j;for (i=2;i<Max;i++)a[i]=1;a[0]=0,a[1]=0;for (i=2;i<Max;i++){if (a[i]==1){for (j=i*2;j<Max;j+=i)a[j]=0;}}}

#include <iostream>#include <stdio.h>using namespace std;#define Max 1000000int a[Max];void oddp(){int i,j;for (i=2;i<Max;i++)a[i]=1;a[0]=0,a[1]=0;for (i=2;i<Max;i++){if (a[i]==1){for (j=i*2;j<Max;j+=i)a[j]=0;}}}int main(){int n;int i,flag;oddp();while (cin>>n&&n!=0){for (flag=0,i=2;i<n;i++){if (a[i]==1&&a[n-i]==1){printf("%d = %d + %d\n",n,i,n-i);flag=1;break;}}if (flag==0)printf("Goldbach's conjecture is wrong.\n");}return 0;}

第三种方法:筛选法,打素数表,然后判断(见本题)。

<!--EndFragment-->

读书人网 >编程

热点推荐