现在的位置: 首页 > 综合 > 正文

奇文共赏析:从一道简单的题目说开来

2012年10月27日 ⁄ 综合 ⁄ 共 608字 ⁄ 字号 评论关闭

题目:对6~60的偶数,验证哥德巴赫猜想:不小于6的偶数可以分解成2个素数之和。

有人给出了如下代码:


    1 /*
    2   Name:
    3   Copyright:
    4   Author:
    5   Date: 13/06/12 14:42
    6   Description:
    7         第二册,P37,练习7,第1题
    8         对6~60的偶数,验证哥德巴赫猜想:不小于6的偶数可以分解成2个素数之和。
    9 */
   10 
   11 #include<iostream>
   12 using namespace std;
   13 
   14 /*检查a(a>=2)是否是素数,
   15 返回:1:是素数;0:不是素数。*/
   16 int f(int a) {
   17     int m=2;
   18     while (a%m!=0) m++;
   19     if(m==a) return 1;
   20     else return 0;
   21 }
   22 
   23 int main() {
   24     int a,
   25         b,
   26         x,
   27         m;
   28 
   29     for(x=6;x<=60;x=x+2) {
   30         for(a=2;a<=x-1;a++) {
   31             b=x-a;
   32             if(f(a)==1 && f(b)==1) {
   33                 cout<<x<<"="<<a<<"+"<<b<<endl;
   34             }
   35         }
   36     }
   37 
   38     system("pause");
   39     return 0;
   40 }

</H blockquote <>

这个代码可以得出正确的运行结果,可是……它实在是跑得太慢了

现在请听题:这是为啥呢?

具体的源代码,请见:http://sdrv.ms/Oxt0Z8

请在下面跟帖回答。

抱歉!评论已关闭.