题目链接:最大最小公倍数
题目大意:给你一个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; }