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 }
  • 相关阅读:
    Python中re(正则表达式)模块学习
    Django(第一次使用心得,及总结)
    Lunix 安装VMware tools
    主键自动生成办法
    常用的android弹出对话框
    JDBC_mysql---防sql注入,存储图片
    java实现md5加密
    sql语句批量处理Batch
    连接mysql数据库2+操作入门
    Oracle事物基础
  • 原文地址:https://www.cnblogs.com/zhishoumuguinian/p/8427880.html
Copyright © 2011-2022 走看看