*哥德巴赫猜想
2016-09-14 17:50
99 查看
猜想:任何一个大于2的偶数都可以写成两个质数之和数值验证:#include<cstdio>#include<cstdlib>#include<cstring>int f(int n,int prime[]){int i,j;for(i=2;i<=n;i++)prime[i]=1;prime[0]=prime[1]=0;for(i=2;i*i<=n;i++){if(prime[i]==1){for(j=2*i;j<=n;j+=i)prime[j]=0;}}}int main(){int n,flag;int *prime;printf("哥德巴赫猜想验证\n");printf("输入一个想验证的最大数n(n>=6):");scanf("%d",&n);if(n<6){printf("数据输入错误!\n");return 0;}if(!(prime=(int *)malloc(sizeof(int)*n)))//欲分配n个空间{printf("分配内存失败!\n") ;return 0;}f(n,prime);for(int i=6;i<=n;i+=2)//从6开始,循环验证各偶数{flag=1;for(int j=2;j<=i/2;j++)//判断组成每个数的的加数{if(j%2==0||((i-j)%2==0)) continue;//若其中一个加数为偶数,不判断素数if(prime[j]==1&&prime[i-j]==1){printf("%d=%d+%d\n",i,j,i-j);flag=0;break;}}if(flag==1)printf("找到一个不符合要求的偶数\n");}return 0;}
<pre name="code" class="cpp">//素数打表#include<cstdio>#include<cstdlib>#include<cstring>int f(int n,int prime[]){for(int i=2;i<=n;i++)prime[i]=0;prime[0]=1;prime[1]=1;for(int i=2;i<=n;i++){if(prime[i]==1) continue;for(int j=2*i;j<=n;j+=i)prime[j]=1;}}int main(){int n,flag;int *prime;printf("哥德巴赫猜想验证\n");printf("输入一个想验证的最大数n(n>=6):");scanf("%d",&n);if(n<6){printf("数据输入错误!\n");return 0;}if(!(prime=(int *)malloc(sizeof(int)*n)))//欲分配n个空间{printf("分配内存失败!\n") ;return 0;}f(n,prime);for(int i=6;i<=n;i+=2)//从6开始,循环验证各偶数{flag=1;for(int j=2;j<=i/2;j++)//判断组成每个数的的加数{if(j%2==0||((i-j)%2==0)) continue;//若其中一个加数为偶数,不判断素数if(prime[j]==0&&prime[i-j]==0){printf("%d=%d+%d\n",i,j,i-j);flag=0;break;}}if(flag==1)printf("找到一个不符合要求的偶数\n");}return 0;}
相关文章推荐
- 哥德巴赫猜想
- 【练习】哥德巴赫猜想验证程序
- C 验证哥德巴赫猜想
- Swing与不规则窗体的“哥德巴赫猜想”-民工甲的Swing一把刀
- 1631哥德巴赫猜想
- 1149:哥德巴赫猜想
- 40.验证哥德巴赫猜想:一个大于2的偶数总可以分解成两个素数的和
- 循环-04. 验证“哥德巴赫猜想”(20)
- 哥德巴赫猜想
- Codeforces Round #324 (Div. 2) D. Dima and Lisa 哥德巴赫猜想
- CSUST 校赛-G.哥德巴赫猜想
- 啊!哥德巴赫猜想
- D. Taxes 哥德巴赫猜想
- Codefoces 735D Taxes(数学 哥德巴赫猜想)
- NUC1305 哥德巴赫猜想【筛选法】
- nefu 2 猜想 (哥德巴赫猜想)
- java_验证哥德巴赫猜想
- Java编程实现验证哥德巴赫猜想
- P1579 哥德巴赫猜想(升级版)(#1 - 7)
- 求用c语言验证哥德巴赫猜想