• 算法训练 最大最小公倍数


    资源限制

    时间限制:1.0s   内存限制:256.0MB

    问题描述

    已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。

    输入格式

    输入一个正整数N。

    输出格式

    输出一个整数,表示你找到的最小公倍数。

    样例输入

    9

    样例输出

    504

    数据规模与约定

    1 <= N <= 106

    从大到小看,首先分为两种情况:N为奇数 和 N为偶数——

    ①N为奇数:N和N-2都是奇数,互质,N-1是偶数,与N和N-1也互质,那么最大最小公倍数就是三者之积 N*(N-1)*(N-2)(奇-偶-奇);

    ②N为偶数:N和N-2都是偶数,存在公因数2,这是不允许的,故不取N-2,向前移一位取N-3,那么最大最小公倍数就是 N*(N-1)*(N-3)(偶-奇-奇),但这时需要注意,若N是3的倍数,那么N-3也是3的倍数,两者存在公因数3,这就更不允许了,所以两个奇数不变,我们改那个偶数,即不取N了,而取N-2,那么最大最小公倍数就是(N-1)*(N-2)*(N-3)(奇-偶-奇)。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstdlib>
     4 #include <cstring>
     5 #include <string>
     6 #include <cmath>
     7 #include <algorithm>
     8 
     9 using namespace std;
    10 typedef long long ll;
    11 
    12 int main() {
    13     ll n, ans;
    14     cin>>n;
    15     if(n<=2) ans=n;
    16     else if(n%2) {//n为奇数,奇-偶-奇 
    17         ans=n*(n-1)*(n-2);
    18     }
    19     else {
    20         if(n%3) ans=n*(n-1)*(n-3);
    21         else ans=(n-1)*(n-2)*(n-3);
    22     }
    23     cout<<ans<<endl;
    24     return 0;
    25 }
  • 相关阅读:
    获取各种高度宽度方法总结
    关于float、absolute,fixed谁的z-index大!
    一张图轻松搞懂javascript event对象的clientX,offsetX,screenX,pageX区别
    clientHeight的纠结之处
    js和jq的获取元素偏移位置
    js的一些使用
    微信 ios的问题
    jQuery事件之鼠标事件
    遇到的问题
    css
  • 原文地址:https://www.cnblogs.com/wwqzbl/p/13518571.html
Copyright © 2020-2023  润新知