| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5940 人关注过本帖
标题:哥德巴赫猜想
取消只看楼主 加入收藏
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
结帖率:100%
收藏
 问题点数:0 回复次数:2 
哥德巴赫猜想
哥德巴赫猜想:任一充分大的偶数,可以用两个素数之和表示.

感觉应该是函数的部分没搞清楚,请高人指点一下.谢谢啦!
运行了,输入数字之后,好像没什么反应哦......

#include<stdio.h>
#include<math.h>
long isprime(long n)/*是素数返回1,不是返回0*/
{
      long i;
      for(i=2;i<=sqrt(n);i++)
      {if(n%i==0)break;}
      if(i>sqrt(n)) return 1;
      else return 0;
}

main()
{
 long p,q,m;
 printf("Plesae input a number:");/*先不判断它是否是偶数了,后面我再加上去*/
 scanf("%ld",&m);
 for(p=2;p<=m-p;p++)
 {if(isprime(p)&&isprime(q))printf("%ld=%ld+%ld",m,p,q);}
 getchar();
 getchar();

[[italic] 本帖最后由 meteor57 于 2007-12-28 13:58 编辑 [/italic]]
搜索更多相关主题的帖子: 哥德巴赫猜想 
2007-12-27 20:59
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
收藏
得分:0 
谢谢各位了.原来在for(p=2;p<=m/2;p++){    ...   }中漏了q=m-p;以致......

请问"無邪的睡脸""很多oj"中的oj指的是什么啊?

顺便再问一下,好像我在用论坛的搜索功能时,可以搜到,但一点击老是找不到网页,这是什么回事啊?

根据两位的思路改了一下就好了,效率也高了一倍!

/*哥德巴赫猜想*/
#include<stdio.h>
#include<math.h>
long isprime(long n)/*是素数返回1,不是返回0*/
{
      long i;
      for(i=2;i<=sqrt(n);i++)
      {if(n%i==0)break;}
      if(i>sqrt(n)) return 1;
      else return 0;
}

main()
{
 long p,q,m;
 printf("Plesae input a even:");
 while(1)
 {
  scanf("%ld",&m);
  if(m%2!=0)printf("Please input a even:\n");
  else break;
 }

if(m==4){printf("4=2+2");getchar();getchar();return 0;}
 for(p=3;p<=m/2;p=p+2)

 {
  q=m-p;  
  if(isprime(p)&&isprime(q))printf("%ld=%ld+%ld\n",m,p,q);
 }
 getchar();
 getchar();
}

[[italic] 本帖最后由 meteor57 于 2007-12-28 13:42 编辑 [/italic]]
2007-12-28 13:39
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
收藏
得分:0 
好算法,素数应该不考虑除2以外的偶数,真是太感谢了,让我又学会一招!!!
2007-12-28 23:35
快速回复:哥德巴赫猜想
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018735 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved