小于n的三个数的最大lcm
几天以前,我学习了最小公倍数。玩得挺久了,想换换口味。
我不想用太多的数字,我想从1到n中选三个数字(可以相同)。使得他们的最小公倍数最大。
单组测试数据。 第一行有一个整数n (1≤n≤1,000,000)。
输出
输出一个整数表示选三个数字的最大的最小公倍数。
输入样例
9
7
输出样例
504 210
这个题并不一定要选择n,n-1和n-2,也并不一定要选择n和n-1,具体证明看看这给博客把
#include<bits/stdc++.h> #define ll __int64 using namespace std; int main(){ ll n,ans; cin>>n; if(n<3)ans=n; else if(n%2!=0){ ans=n*(n-1)*(n-2); } else{ if(n%3!=0)ans=n*(n-1)*(n-3); else ans=(n-1)*(n-2)*(n-3); } cout<<ans<<endl; return 0; }