C语言 哥德巴赫猜想 输入4~100之间的偶数, 写出这个偶数拆成两个素数之和的方法

阅读: 评论:0

C语言 哥德巴赫猜想 输入4~100之间的偶数, 写出这个偶数拆成两个素数之和的方法

C语言 哥德巴赫猜想 输入4~100之间的偶数, 写出这个偶数拆成两个素数之和的方法

本篇博客主要内容:哥德巴赫猜想 输入4~100之间的偶数, 写出这个偶数拆成两个素数之和的所有方法。见篇尾处。先看原理:
饮水思源:
哥德巴赫猜想通常指:任何大于2的偶数都可以写成两个素数的和。
别称通常指关于偶数的哥德巴赫猜想。
例如
4=2+2, 6=3+3,8=5+3,
10=7+3,12=7+5,14=11+3,……
素数:除1和本身无其他因数,又称质数,2是最小的素数。

关于哥德巴赫猜想的实战案例 :输入4~100之间的偶数, 写出这个偶数拆成两个素数之和的所有方法。
如18=7+11, 18=13+5。
算法思想:
1.将大于2的偶数拆成任意两个数的和
2.判断这两个数是否为素数
先解决偶数问题:可以用for循环这样写:

for(k=4;k<=100;k++)

接着把这个偶数 成任意 两个素数
k=a+b;
用数学方法判断a,b是否为素数,a,b范围可以这么写:
写法一样:
2~根号a
2~根号b

代码如下:

#include<stdio.h> 
#include<stdlib.h>
#include<math.h>
main()
{	int k,a,b,i,count1,count2;for(k=4;k<=100;k=k+2){	for(a=2;a<=sqrt(k);a++){	//判断a是否为素数count1=0;for(i=2;i<=a-1;i++) {	if(a%i==0){	count1++;break;}}if(count1==0)//如果a是质数{	b=k-a;//判断b是否为素数 count2=0;for(i=2;i<=b-1;i++){	if(b%i==0){	count2++;break;}} if(count2==0)//如果b也是素数{	printf("%d=%d+%dn",k,a,b);break;//打印这个解并跳出循环 } }	}
}
system("color f4");
}

本文发布于:2024-01-28 00:53:13,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063743953665.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:偶数   哥德巴赫   素数   之和   两个
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23