行云

行至水穷处,坐看云起时。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

题目:p215    寻找不能被[2,31]中连续两个数整除,但能被其它数整除的数

long long GCD(long long a, long long b)
{
    if (b == 0)
        return a;
    return GCD(b, a%b);
}
long long LCM(long long a, long long b)
{
    return a*b/GCD(a,b);
}

long long FindNumber()
{
    long long lcm=2;
    for (int j=2; j<31; j++)
    {
        lcm=1;
        for (int i=2; i<=31; i++)
        {
            if (i!=j && i!=j+1)
                lcm = LCM(i, lcm);
        }
        if (lcm%j!=0 && lcm%(j+1)!=0)
            cout << lcm << endl;
    }
    
    return lcm;
}

2123581660200
2329089562800

其它数:

if (lcm%j!=0 && lcm%(j+1)!=0)
cout << lcm << endl;
改为
while (lcm%j!=0 && lcm%(j+1)!=0 && lcm<MAX)
  lcm+= lcm;
posted on 2012-05-09 10:32  windflying  阅读(295)  评论(0编辑  收藏  举报