https://tianchi.aliyun.com/oj/15179470890799741/85251759933690467

 

若a与b(a<b)的最大公因数为c,那么b-a>=c

 

如果b是奇数,那么答案就是b*(b-1)*(b-2)

因为相邻的3个数只能有公因数2,而b是奇数所以不会有两个偶数

如果b是偶数,若b不是3的倍数,那么答案就是b*(b-1)*(b-3)

因为如果选b (b-1) (b-2) ,最大是b*(b-1)*(b-2)/2,当b>=4时,b-3>=(b-2)/2

如果b是偶数,且b是3的倍数,那么答案就是(b-1)*(b-2)*(b-3)

因为如果选了b,同上。

注意当b-a=2时,若b是偶数,只能是b*(b-1)*(b-2)/2

 

(数学渣渣只会这样理解,如有错误感谢指出,嘤嘤嘤)

 

class Solution {
public:
    /**
     * @param a: Left margin
     * @param b: Right margin
     * @return: return the greatest common multiple
     */
    long long greatestcommonmultiple(int a, int b) {
        // write your code here
        if(b&1)) return 1ll*b*(b-1)*(b-2);
        else if(b-a==2) return b*(b-1)*(b-2)/2;
        else if(b%3) return 1ll*b*(b-1)*(b-3);
        else return 1ll*(b-1)*(b-2)*(b-3);
    }
};

 

相关文章:

  • 2022-02-15
  • 2021-10-25
  • 2021-11-08
  • 2021-12-23
  • 2022-12-23
  • 2021-06-16
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-04
  • 2022-02-24
  • 2021-11-03
  • 2022-12-23
  • 2022-02-22
  • 2021-07-28
  • 2021-05-23
相关资源
相似解决方案