验证哥德巴赫猜想:任何一个大于等于6的偶数均可表示为两个素数的和。如6=3+3,8=3+5,,18=5+13。试编写程序,要求将输入的一个偶数表示成两个素数之和。 输入输出样例如下:

验证哥德巴赫猜想:任何一个大于等于6的偶数均可表示为两个素数的和。如6=3+3,8=3+5,,18=5+13。试编写程序,要求将输入的一个偶数表示成两个素数之和。
输入输出样例如下:
98
98 = 19 + 79
98 = 31 + 67
98 = 37 + 61

ps:这个是大一程序作业,供更多的人了解
#include
int main(void)
{
int a,b,n,m,k;
scanf("%d",&n);
for(a=3;a<=n/2;a++)
{
for(m=2;m<=a/2;m++)
if(a%m0)
break;
if(m>a/2)
b=n-a;
else
continue;
for(k=2;k<=b/2;k++)
if(b%k
0)
break;
if(k>b/2)
printf("%d=%d+%d\n",n,a,b);
}
return 0;
}

更新:用函数的方法做本题,更加方便理解

int fact(int n)
{
int i;
if(n<2)
{
return 0;//这里用0和1方便判断真假
}
else if(n2)
{
return 1;
}
else
{
for(i=2;i<=n/2;i++)
{
if(n%i
0) return 0;
}
return 1;
}
}

#include
int main(void)
{
int n,i;
printf(“请输入一个大于六的整数,在这里我们要求哥德巴赫猜想:”);
scanf("%d",&n);
if(n<6)
{
printf(“error!\n”);
}
else
{
for(i=3;i<=n/2;i=i+2)
{
if(fact(i)==1&&fact(n-i)==1)
{
printf("%d =%d + %d\n",n,i,n-i);
}
}
}
return 0;
}

你可能感兴趣的:(C语言学习,c语言,哥德巴赫猜想)