跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 综合服务 > 物流仓储 > C语言:证明【哥德巴赫】猜想(超详解)进来你就会!

C语言:证明【哥德巴赫】猜想(超详解)进来你就会!

时间:2024-04-21 21:40:29 来源:网络cs 作者:往北 栏目:物流仓储 阅读:

标签: 证明  猜想  语言 

哥德巴赫猜想:任何一个大于2的偶数总能表示为两个素数之和。

比如:24=5+19,其中5和19都是素数。

本实验的任务是设计一个程序,验证100以内的偶数都可以分解成两个素数之和;

本题关键:偶数(大于2)=素数+素数;

可以分为三个部分来写:

一:求100以内的素数;

二:把100以内素数存到一个数组里;

三:从数组中找素数相加来验证;

这样分开就好写,好理解多了;

 一,求素数;

#include <stdio.h>int main(){for (int i = 2; i <= 100; i++){int flag = 1;for (int j = 2; j < i; j++){if (i % j == 0){flag = 0;break;}}if (flag == 1){                      printf("%d\n", i);}}return 0;}//制作不易,希望一键三连,点个关注不迷路,谢谢支持!

 运行看效果:

有看不懂的宝子可以看我之前的博客,有详解; 

二,存数组;

存数组好处:将素数整理,便于相加;

只需在这基本上加一点代码:

int arr[1000];  //创建一个数组int cum = 0;    //创建为数组的下标arr[cum] = i;  //储存cum++;         //下标自加 //制作不易,希望一键三连,点个关注不迷路,谢谢支持!

 加完之后图片:

 前两个部分完成了;

三,计算相加;

数组arr[100]中储存的现在全部为素数了,可以用来相加了;

代码:

int input = 0;scanf_s("%d", &input);for (int i = 0; i < cum; i++){for (int j = 0; j < cum; j++){if (input == arr[i] + arr[j])     //判断猜想printf("%d=%d+%d\n", input, arr[i], arr[j]);}}//制作不易,希望一键三连,点个关注不迷路,谢谢支持!

这样就完成了;

四,全部代码:

#include <stdio.h>int main(){printf("请输入大于2的偶数-->\n");int arr[10000];int cum = 0;for (int i = 2; i <= 100; i++){int flag = 1;for (int j = 2; j < i; j++){if (i % j == 0){flag = 0;break;}}if (flag == 1){                       //cum初始化为0,刚好与数组下标一样 arr[cum] = i;       //把素数全都存在数组arr[cum]中cum++;              }}int input = 0;scanf_s("%d", &input);printf("猜想证明:\n");for (int i = 0; i < cum; i++){int lag = 1;for (int j = 0; j < cum; j++){if (input == arr[i] + arr[j])printf("%d=%d+%d\n", input, arr[i] , arr[j]);}}return 0;}//制作不易,希望点一键三连,点个关注不迷路,谢谢支持!

运行:


以上就是关于【哥德巴赫】猜想的全部内容了,具体还需要宝子们去实践,如果对你有帮助,那就点个关注吧,谢谢支持!

本文链接:https://www.kjpai.cn/news/2024-04-21/161074.html,文章来源:网络cs,作者:往北,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论