这题好毒瘤啊

(特别是long long的坑,调了半天没调好!!)
先将你特判一下小于3的话直接输出就是惹,不是的话就判断一下它能不能被2整除如果不能就直接输出n(n-1)(n-2)否则进行枚举
枚举核心代码:

    LL sum=0;
    sum=i*j/gcd(i,j);
    sum=sum*k/gcd(sum,k);
    ans=max(ans,sum);

求三个数的最小公倍数。

以下是代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL ans,n;
LL gcd(LL a,LL b){
    if(!b)return a;
    return gcd(b,a%b);
}
int main(){
    scanf("%lld",&n);
    if(n<=2){
        printf("%lld",n);
        return 0;
    }
    if(!(n%2)){
        for(LL i=n;i>=n-100;i--){
            if(i==0)break;
            for(LL j=n;j>=n-100;j--){
                if(j==0)break;
                for(LL k=n;k>=n-100;k--){
                    if(k==0)break;
                    LL sum=0;
                    sum=i*j/gcd(i,j);
                    sum=sum*k/gcd(sum,k);
                    ans=max(ans,sum);
                }
            }
        }
    }
    else ans=(n*(n-1)*(n-2));
    printf("%lld",ans);
    return 0;
}

本章完结QAQ