将一个偶数分解成两个素数之和
解这道题我们只需要关注后半句话:两个素数之和
两个素数之和?该怎么解答?
有的朋友可能想到了套两层循环直接让电脑来判断
但在这里我们可以直接用n减去其中的一个数,得到另一个数
最后判断这两数是否为素数,都为素数就解题成功啦!
程序如下:
#include<stdio.h>
int sushu(int n)//判断是否为素数
{
int i;
if(n==1)return 0;
for(i=2;i<n;i++)
{
if(n%i==0)return 0;
}
return 1;
}
int main()
{
int n,i;
printf("请输入一个偶数:");
scanf("%d",&n);
for(i=2;i<n/2;i++)//n/2是为了使输出结果不重复
if(sushu(i)&&sushu(n-i))printf("%d=%d+%d\t",n,i,n-i);
}