当前位置: 代码迷 >> C语言 >> 验证歌德巴赫猜想中的错误
  详细解决方案

验证歌德巴赫猜想中的错误

热度:225   发布时间:2007-12-01 09:52:56.0
验证歌德巴赫猜想中的错误
#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;
}
----------------解决方案--------------------------------------------------------
  相关解决方案