验证哥德巴赫猜想: 任何一个大于6的偶数都可以表示成两个素数之和。程序功能:输入一个大于2的偶数,输出该偶数的两个素数加和算式。
如 请输入一个偶数:10
10=3+7=5+5
/*哥德巴赫猜想*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,i,b,count1=0,count2=0,c; /*a是输入的偶数 a=i+(a-i)*/
printf("请输入一个大于2的偶数:");
scanf("%d",&a);
printf("分解为:");
printf("%d",a);
for(i=2;i<=a/2;i++) /*从i=2开始逐一枚举*/
{
for(b=1;b<=i;b++) /*检查i是否为素数*/
{
if(i%b==0)
++count1;
}
if(count1==2) /*若i是素数(只能被1和其本身整除)*/
{
for(c=1;c<=a-i;c++) /*检查(a-i)是否为素数*/
{
if((a-i)%c==0)
++count2;
}
if(count2==2) /*a与(a-i)都是素数的情况*/
printf("=%d+%d",i,a-i);
}
count1=0;
count2=0;
}
return 0;
}