正文

一道我应该作的题目2006-11-29 19:01:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/zean/21039.html

分享到:

任何一个大于等于6的偶数都可表示为两个素数之和。请列出100-200之间的所有偶数被表示成两个素数之和的全部形式。注意:如14可表示为14=3+11,还可表示为14=7+7(不需要再考虑14=11+3)。

 

作者:battle
专家分:510
发表时间:2006-11-28 21:51:00    [回复]  [引用]
1 楼  

#include<iostream.h>
#include<math.h>
bool prime(int n);
void main()
{
     int number,n;
     for(number=100;number<=200;number++)
     {
         for(n=number/2;n>1;n--)
             if(prime(n)&&prime(number-n))
             {
                 cout<<number<<"="<<n<<"+"<<number-n<<endl;
             }
     }
}
bool prime(int n)
{
    for(int i=2;i<=sqrt(n);i++)
        if(n%i==0)break;
        if(i>sqrt(n))
            return true;
    return false;
}

 

  此帖尚未评分
作者:幻雪
专家分:200
发表时间:2006-11-29 17:02:00    [回复]  [引用]
2 楼  
1楼的朋友:

    两个for语句可以改改,提高算法的效率

 for(number=100;number<=200;number+=2)
     {
         for(n=number/2-1;n>1;n-=2)

 

签名档
其实你与昨日的我 活到今天变化甚多
  此帖尚未评分
作者:Mcemil
专家分:740
发表时间:2006-11-29 17:10:00    [回复]  [引用]
3 楼  
引用
1楼的朋友:

    两个for语句可以改改,提高算法的效率

 for(number=100;number<=200;number+=2)
     {
         for(n=number/2-1;n>1;n-=2)

可笑啊,你怎么保证n=number/2-1一定是一个奇数

歌德巴赫猜想:任何大于2的偶数,都可以表示成两个质数之和.

 

签名档
To own c++'s soul,to be an exceptional programmer.
  此帖尚未评分
作者:redlives
专家分:2940
发表时间:2006-11-29 17:16:00    [回复]  [引用]
4 楼  
可以试试开辟一个数组,把100-200以内的素数存起来,这样是否方便些呢

 

签名档
工作原因,所上网站有限,请站内联系
革命尚未成功,同志仍需努力 
just to try
  此帖尚未评分
作者:Johnnyyeen
专家分:340
发表时间:2006-11-29 18:02:00    [回复]  [引用]
5 楼  
1 找出1-200所有质数
2 2重循环迭代任意量个数的和,若大100,小于200则进入3
3 %2余0输出这两个数

 

  此帖尚未评分
作者:幻雪
专家分:200
发表时间:2006-11-29 18:34:00    [回复]  [引用]
6 楼  
引用

可笑啊,你怎么保证n=number/2-1一定是一个奇数

歌德巴赫猜想:任何大于2的偶数,都可以表示成两个质数之和.


    谢谢这位朋友!

    没有运行查看结果就发上去了,第二个for语句会把有些奇数也排除掉,应该先对number进行判断的

    歌德巴赫猜想是任何大于等于6的偶数,不是2

阅读(2399) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册