求助大佬
【问题描述】编写素数判断函数int prime(int n)n为素数返回1、否则返回0,并通过调用该函数编程验证歌德巴赫猜想:任何大于2的偶数均可表示为两个素数之和。例如:4=2+2,6=3+3,8=3+5,…,试验证之间的偶数,每个偶数只需找到一组和式即可,其中n从键盘输入。【输入形式】输入正整数n。
【输出形式】输出每个偶数的组合(每个数只要显示一对)。
#include<stdio.h>
#include<math.h>
int prime(int m);
void main()
{
int n,a,m;
scanf("%d",&n);
for(a=n;a<=(n+10);a++)
{
if(prime(m))
{
printf("%d=%d+%d\n",a,m,a-m);
}
}
}
int prime(int m)
{
int i;
if(m<2)
return 0;
for(i=2;i<=sqrt(m);i++)
if(m%i==0)
{
return 0;
}
return 1;
}
请问这样写为什么是错的,谢谢纠正{:5_108:}
void main()
{
int n,a,m;
scanf("%d",&n);
for(a=n;a<=(n+10);a++)
{
if(a%2!=0) continue;
for(m=2;m<=a/2;m++)
if(prime(m)&&prime(a-m))
{
printf("%d=%d+%d\n",a,m,a-m);
break;
}
}
}
页:
[1]