题目链接:最大最小公倍数
题目大意:给你一个N,然后从这1~N这N个数中取出任意三个数(可以重复),求三个数的最小公倍数,然后求任意三个数中能取到的最大值
题目思路:看样例,猜题意,9的答案是9,8,7,然后成功猜出来奇数是直接n*(n-1)*(n-2),因为n和n-2都是奇数,公约数是1,n*(n-2)也是奇数,跟n-1的公约数也是1,所以答案就是n*(n-1)*(n-2),然后打个n^3的表继续猜题意,发现为偶数时要分能不能被三整除,不能的话答案就是n*(n-1)*(n-3),能的话,答案就是(n-1)*(n-2)*(n-3),然后特判一下1和2就可以了
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll n;
while(cin>>n){
if(n == 1) puts("1");
else if(n == 2) puts("2");
else{
if(n&1) printf("%lld\n",n*(n-1)*(n-2));
else{
if(n%3 != 0) printf("%lld\n",n*(n-1)*(n-3));
else printf("%lld\n",(n-2)*(n-1)*(n-3));
}
}
}
return 0;
}