zoukankan      html  css  js  c++  java
  • 算法训练 最大最小公倍数

    资源限制

    时间限制: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 }
  • 相关阅读:
    [CentOS_7.4]Linux编译安装mono环境
    [CentOS_7.4]Linux安装与网络配置
    div框选中状态,倒三角样式
    photoswipe图片滑动插件使用
    微信应用号(小程序)开发教程二
    微信应用号(小程序)开发教程一
    开发者必去的10大国内网站推荐
    愤怒的小鸟 高清完整版下载
    魔兽 高清完整版下载
    分歧者3 高清完整版下载
  • 原文地址:https://www.cnblogs.com/wwqzbl/p/13518571.html
Copyright © 2011-2022 走看看