|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
【问题描述】编写素数判断函数int prime(int n)n为素数返回1、否则返回0,并通过调用该函数编程验证歌德巴赫猜想:任何大于2的偶数均可表示为两个素数之和。例如:4=2+2,6=3+3,8=3+5,…,试验证[n,n+10]之间的偶数,每个偶数只需找到一组和式即可,其中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;
}
请问这样写为什么是错的,谢谢纠正
- 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;
- }
- }
- }
复制代码
|
|