找到3个不超过n的正整数(可以相同),使得它们的lcm(最小公倍数)最大。
Solution
可以做得很优雅吧,但我喜欢(只会)暴力一点
根据质数密度分布性质,最后所取的这三个数一定不会比 (n) 小太多(实在不行就取三个质数呀),所以我们钦定一个界,然后暴力枚举取最优即可
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n;
signed main() {
cin>>n;
int ans=0;
for(int i=max(1ll,n-80);i<=n;i++) {
for(int j=max(1ll,n-80);j<=n;j++) {
for(int k=max(1ll,n-80);k<=n;k++) {
int g=i*j/__gcd(i,j);
int u=g*k/__gcd(g,k);
ans=max(ans,u);
}
}
}
cout<<ans;
}