美文网首页
算法训练 最大最小公倍数

算法训练 最大最小公倍数

作者: DongBold | 来源:发表于2017-03-04 15:49 被阅读74次

    问题描述

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

    输入格式

    输入一个正整数N。

    输出格式

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

    样例输入

    9

    样例输出

    504

    数据规模与约定

    1 <= N <= 106。

    思路: 如果n为奇数, 那么结果就是最大的三个数乘积, 如果是偶数, 就又两种可能n(n-1)(n-3)或者(n-1)(n-2)(n-3), 如果n对3取余不为零, 就是第一种结果, 否则就是第二种结果

    #include <bits/stdc++.h>
    using namespace std;
    
    
    int main() {
        long long n;
        long long ans;
        scanf("%lld", &n);
        if (n % 2) {
            ans = n * (n - 1) * (n - 2); 
        } else {
            if(n % 3 == 0) {
                ans = (n - 1) * (n - 2) * (n - 3); 
            } else {
                ans = n * (n -1) * (n - 3);
            }
        }
        
        printf("%lld\n", ans);
        
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:算法训练 最大最小公倍数

          本文链接:https://www.haomeiwen.com/subject/vqkjgttx.html