验证歌德巴赫猜想中的错误
#include<stdio.h>#include "math.h"
int prime(int m) {
int i,k;
k=sqrt(m);
for(i=2;i<k;i++)
if(m%i==0) break;
if(i>=k)
return 1;
else
return 0;
}
int main() {
int x,i;
printf("please input a even number(>=6):\n");
scanf("%d",&x);
if (x<6||x%2!=0)
printf("data error!\n");
else
for(i=2;i<=x/2;i++)
if (prime(i)&&prime(x-i)) {
printf("%d+%d\n",i,x-i);
printf("验证成功!");
break;
}
return 0;
}
歌德巴赫猜想:任何大于6的偶数能分解成两个素数的和
为什么输入12 返回的却是3+9
帮忙找下错 谢拉
----------------解决方案--------------------------------------------------------
5 + 7
素数函数错误。
[[italic] 本帖最后由 cosdos 于 2007-12-1 10:13 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
int prime(int x)
{
int i;
double k;
k = sqrt(x);
for (i = 2; i <= k; i++)
{
if (x % i==0)
break;
}
if(i > k)
return 1;
else
return 0;
}
----------------解决方案--------------------------------------------------------