2724 - 韬神的简单找规律系列三:LCM的试炼
其实这又是一道简单的规律题,LCM是啥都应该知道吧。。不知道没关系也就是最小公倍数啦。
题目也很简单:给你一个数n,从1~n这n个数中可以任意挑选3个数,有n^3种情况对吧,在这么多种情况中,挑选出最小公倍数最大的情况,貌似没描述的很清楚,没关系看样例,再给你解释。
Input
给你一个整数n,1<= n <= 10^6.
Output
输出你选取的三个数构成的最小公倍数的最大者。
Examples
Input
9 7
Output
504 210
Hint
当n等于9时,挑选出3个数,使得最小公倍数最大,那必然就是选9 8 7 咯所以答案就是987=504
当n等于7时,挑选出的三个数,也很容易找咯,就是7 6 5 咯 所以答案是765=210
PS:样例其实是很水的,测试时候的数据还是有陷阱的O(∩_∩)O~
Solution C++
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> using namespace std; int main() { long long n; while(cin>>n) { long long ans; if(n<3) cout<<n<<endl; else if(n%2==0&&n%6!=0) { ans=n*(n-1)*(n-3); cout<<ans<<endl; } else if(n%6==0) { ans=(n-2)*(n-1)*(n-3); cout<<ans<<endl; } else if(n%2!=0) { ans=n*(n-1)*(n-2); cout<<ans<<endl; } } return 0; }
Hint
当n等于9时,挑选出3个数,使得最小公倍数最大,那必然就是选9 8 7 咯所以答案就是987=504
当n等于7时,挑选出的三个数,也很容易找咯,就是7 6 5 咯 所以答案是765=210
PS:样例其实是很水的,测试时候的数据还是有陷阱的O(∩_∩)O~