zoukankan      html  css  js  c++  java
  • 最大最小公倍数

    转载请注明出处:http://www.cnblogs.com/zhishoumuguinian/p/8427880.html

    思路:首先看两个定理(1)两个互质数的最小公倍数是他们的乘积;(2)相邻的两个数互质。

    那么如果想让这两个数的最小公倍数尽可能大,就找互质的就可以了,三个数也是同样。互质数越大,最小公倍数也就越大,于是我们从大的数开始找互质的三个数。

    1.如果n 是奇数,那么n, n-1, n-2 就互质。

    2.如果n是偶数,需要考虑两种情况,n是否是三的倍数。不是三的倍数:n是偶数,那么n-2也是偶数,n和(n-2)不能同时出现,所以剩下数的里边最大的就是n*(n-1)*(n-3)。是三的倍数:n是三的倍数,n和(n-3)不能同时出现,但同时n也是偶数,在n,(n-1),(n-2),(n-3)里符合条件的就只能是(n-1)*(n-2)*(n-3)。

    粘上代码

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     long long n;
     7     cin>>n;
     8     if(n<3) cout<<n;
     9     else if(n&1) cout<<n*(n-1)*(n-2);//n是奇数
    10     else
    11     {
    12         if(!(n%3))//n是三的倍数
    13         {
    14             cout<<(n-1)*(n-2)*(n-3);
    15         }
    16         else
    17         {
    18             cout<<n*(n-1)*(n-3);
    19         }
    20     }
    21 }
  • 相关阅读:
    COCI2013-2014 Contest#3 F 单调栈
    Topcoder SRM568 Div1 DisjointSemicircles (二分图染色)
    COCI2013-2014 Contest#1 F SLASTIČAR
    TopCoder SRM 561 Orienteering(树形dp)
    COCI20122013 Contest#5 F
    2016 多校5 ATM
    2014多校6 Another Letter Tree
    HAOI2015 数组游戏
    [CCO 2017]接雨滴
    Luogu P6789 寒妖王
  • 原文地址:https://www.cnblogs.com/zhishoumuguinian/p/8427880.html
Copyright © 2011-2022 走看看