1440: First Blood
时间限制: 1 Sec
内存限制: 128 MB
提交: 5
解决: 5
上一题
提交
状态
下一题
题目描述
盖伦是个小学一年级的学生,在一次数学课的时候,老师给他们出了一个难题:
老师给了一个正整数 n,需要在不大于n的范围内选择三个正整数(可以是相同的),使它们三个的最小公倍数尽可能的大。盖伦很想第一个解决这个问题,你能帮助盖伦拿到“first blood”吗?
输入
首先是一个正整数T,表示有T组测试数据
每组测试数据是一个正整数n(1<=n<=10^6)
输出
对于每组测试数据,输出最大的最小公倍数,每个输出单独占一行
样例输入
297
样例输出
504210
#include <cstdio>
using namespace std;
int main()
{
int T;
int n;
scanf("%d", &T);
while(T--){
scanf("%d", &n);
if(n%2==1){
printf("%d\n", n*(n-1)*(n-2));
}
else{
if((n-3)%3!=0){
printf("%d\n", n*(n-1)*(n-3));
}
else
printf("%d\n", (n-1)*(n-2)*(n-3));
}
}
return 0;
}