任何一个大于等于6的偶数都可表示为两个素数之和。请列出100-200之间的所有偶数被表示成两个素数之和的全部形式。注意:如14可表示为14=3+11,还可表示为14=7+7(不需要再考虑14=11+3)。 作者:battle专家分:510 会员信息 发短消息 所属BLOG 发表时间: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 会员信息 发短消息 所属BLOG 发表时间: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 会员信息 发短消息 所属BLOG 发表时间: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 会员信息 发短消息 所属BLOG 发表时间:2006-11-29 17:16:00 [回复] [引用] 4 楼 可以试试开辟一个数组,把100-200以内的素数存起来,这样是否方便些呢 工作原因,所上网站有限,请站内联系革命尚未成功,同志仍需努力 just to try 此帖尚未评分 作者:Johnnyyeen专家分:340 会员信息 发短消息 所属BLOG 发表时间:2006-11-29 18:02:00 [回复] [引用] 5 楼 1 找出1-200所有质数2 2重循环迭代任意量个数的和,若大100,小于200则进入33 %2余0输出这两个数 此帖尚未评分 作者:幻雪专家分:200 会员信息 发短消息 所属BLOG 发表时间:2006-11-29 18:34:00 [回复] [引用] 6 楼 引用: 可笑啊,你怎么保证n=number/2-1一定是一个奇数歌德巴赫猜想:任何大于2的偶数,都可以表示成两个质数之和. 谢谢这位朋友! 没有运行查看结果就发上去了,第二个for语句会把有些奇数也排除掉,应该先对number进行判断的 歌德巴赫猜想是任何大于等于6的偶数,不是2

评论