本篇博客主要内容:哥德巴赫猜想 输入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+%d\n",k,a,b);
break;//打印这个解并跳出循环
}
}
}
}
system("color f4");
}

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