1.解题思路
任意一个大于等于6 的偶数都可以分解为两个素数之和基本思想:n为大于等于6 的任一偶数,
可分解为n1 和 n2两个数,分别检查n1和n2是否为素数,如都是,则为一组解。
如n1不是素数,就不必再检查n2是否素数。先从n1=2开始,
检验n1 和 n2 (n2=n-n1)是否素数。然后使n1+1再检验n1、n2是否素数,
…直到n1=n/2为止。
2.C语言代码
#include "stdio.h"
#include "math.h"
int main(){
int x, i;
x = 8;
int prime(int m);
if (x < 6 || x % 2 != 0)
printf("请输入大于6或大于6的偶数");
else
for(i=2; i<= x/2; i++)
{
if (prime(i) && prime(x-i)){
printf("%d+%d\n", i, x-i);
printf("成功了\n");
break;
}
}
}
int prime(int m)
{
int i, k;
k = (int)sqrt(m);
for (i=2; i<=k; i++)
if (m % i == 0)
break;
if (i > k)
return 1;
else
return 0;
}