首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

poj ——2262水题素数有关问题

2012-10-09 
poj ——2262水题素数问题void oddp(){int i,jfor (i2iMaxi++)a[i]1a[0]0,a[1]0for (i2iMaxi+

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-->

热点排行