开始拿到这道题想的有点复杂了, 简单来想, 为了使得最大LCM最大, 我们应该从N开始往下找, 找到三个最大的互质的数就好了
这个地方牵扯到数论中的一点儿基础知识, 很简单的知识
1. 互质数: 两个数的最大公约数是1的时候称为互质数
2. 相邻的两个自然数是互质数。如 15与 16。
3. 相邻的两个奇数是互质数。如 49与 51。
这时候分类讨论一下小于三和奇数, 偶数的情况就好了.
奇数直接取n, n-1, n-2, 偶数就再多判断一下能不能被3余的情况
#include<stdio.h>
int main()
{
long long N;
long long answer;
while(scanf("%lld",&N)!=EOF){
if(N<=2)
answer = N;
else if(N==3)
answer = 6;
else if(N%2==1)
answer = N*(N-1)*(N-2);
else{
if(N%3==1 || N%3==2)
answer = N*(N-1)*(N-3);
else
answer = (N-3)*(N-1)*(N-2);
}
printf("%lld\n",answer);
}
}