验证哥德巴赫猜想:任何一个大于等于6的偶数均可表示为两个素数之和。例如6=3+3,8=3+5,……,18=5+13。要求将输入的一个偶数表示成两个素数之和。试编写相应程序。
#include <stdio.h>
#include <math.h>
int main()
{
int n;
printf("enter n:");
scanf("%d",&n);
for (int a=3; a<=n/2; a++) {//从3开始取素数是我没想到的
int b=n-a;
int flag1,flag2;
double sa=sqrt(a),sb=sqrt(b);
for (int i=2; i<=sa; i++) {
if (a%i==0)
break;
else
flag1=1;
}
for (int j=2;j<=sb; j++) {
if (b%j==0)
break;
else
flag2=1;
}
if (flag1==1&&flag2==1) {
printf("%d=%d+%d",n,a,b);
break;
}
}
return 0;
}