任何一个大于等于6的偶数都可表示为两个素数之和。请列出100-200之间的所有偶数被表示成两个素数之和的全部形式。注意:如14可表示为14=3+11,还可表示为14=7+7(不需要再考虑14=11+3)。 
| 作者:battle 专家分:510   
 | 
 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   
 | 
 2 楼   
1楼的朋友: 
两个for语句可以改改,提高算法的效率 for(number=100;number<=200;number+=2) { for(n=number/2-1;n>1;n-=2) 
 ![]() 其实你与昨日的我 活到今天变化甚多   此帖尚未评分   | 
| 作者:Mcemil 专家分:740   
 | 
 3 楼   
引用: 可笑啊,你怎么保证n=number/2-1一定是一个奇数 歌德巴赫猜想:任何大于2的偶数,都可以表示成两个质数之和. 
 ![]() To own c++'s soul,to be an exceptional programmer.   此帖尚未评分   | 
| 作者:redlives 专家分:2940   
 | 
 4 楼   
可以试试开辟一个数组,把100-200以内的素数存起来,这样是否方便些呢 
 
 ![]() 工作原因,所上网站有限,请站内联系 革命尚未成功,同志仍需努力 just to try   此帖尚未评分   | 
| 作者:Johnnyyeen 专家分:340   
 | 
 5 楼   
1 找出1-200所有质数 
2 2重循环迭代任意量个数的和,若大100,小于200则进入3 3 %2余0输出这两个数 
   此帖尚未评分   | 

 
 
 
 

 
 
 
评论