第一次尝试:
错误
#include<stdio.h>
int main()
{int m,a,b,i,t1,t2;
for(m=4;m<=400;m=m+2)//判断从4开始
{ t1=1;
for(a=3;a<=m/2;a++)
{
for(i=3;i<=a-1;i++)
if(a%i==0)
{ t1=0;
break;}
if(t1==1)//a为素数
{b=m-a;
t2=1;
for(i=2;i<=b-1;i++)//判断b是否为素数
{
if(b%i==0)
{ t2=0;
break;} }}
if(t2==1)
printf("%d=%d+%d\n",m,a,b);}
}
return 0;}
第二次,定义函数
正确
#include<stdio.h>
int sushu(int a)
{int i,qwe=1;
for(i=2;i<a;i++)
if(a%i==0)
{qwe=0;
break;
}
else
qwe=1;
return qwe;
}//定义函数
int main()
{int a,i,n;
scanf("%d",&n);//验证范围
for(i=4;i<=n;i++)
for(a=2;a<=i/2;a++)
if(sushu(a)&&sushu(i-a))
printf("%d=%d+%d\n",i,a,i-a);
return 0;
}
注:该定义的函数默认输入的数是大于1的整数
对于全体整数
int sushu(int a) {
int i,t=1;
if(a>1)
{
{for(i=2;i<a;i++)
if(a%i==0)
{t=0;
break;}
}
}
else
t=0;
return t;
}