验证哥德巴赫猜想的C程序设计及源码

本文通过模块化设计的方法,使用C语言设计了一个验证哥德巴赫猜想的模块化程序,源码见后文。


          哥德巴赫猜想    哥德巴赫1742年给欧拉的信中哥德巴赫提出了以下猜想:任一大于2的偶数都可写成两个质数之和。这是一个尚待解决的数学难题,目前为止的进展是“2+1”,具体内容此处就不详述了。

本方案中,模块化设计的部分为:

  1. 偶数的判定模块
  2. 质数(对)的判定模块
  3. 辅助模块
  4. 主函数(主调用)模块


C语言完整代码程序可以多次执行对输入数据的哥德巴赫分解! ]

#include "stdio.h"
#include"math.h"int isPrime(int);
void deverse(int n);int main(void){int n=0,flag=0;do{if(!flag){printf("输入一个大于5的偶数,测试哥德巴赫猜想[输入一个小于6的数结束]:\n");scanf("%d",&n);if(n<6){printf("请检查是否大于5,并重新输入:\n");scanf("%d",&n);}flag=1;if(n<6 printf="" n="" return="" if="" n="">=6 &&n%2==0){deverse(n);}if(n%2!=0){printf("请输入一个偶数![输入一个小于6的数结束]:\n");scanf("%d",&n);continue;}printf("输入一个大于5的偶数,测试哥德巴赫猜想[输入一个小于6的数结束]:\n");scanf("%d",&n);}while(n>=6);printf("Byebye!\n");return 0;
}int isPrime(int n){int mid_n=sqrt(n);for(int i=2;i<=mid_n;i++){if(n%i==0){return 0;}}return 1;
}
void deverse(int n){int k=0;for(int i=1;i<=n/2;i++){if(isPrime(i)){if(isPrime(n-i)){k++;printf("Goldbach company %2d: %3d=%3d +%3d\n",k,n,i,n-i);}}}if(k==0){printf("%d is not a Goldbach defined number!\n");}return;
}

运行截图:

  • input:    5↙74356↙3↙

  • input:45↙

  • input:94299↙94↙2↙

  • input:127648↙2↙


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部