问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式
输入一个正整数N。
输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定
1 <= N <= 10^6。
PS:
多找几组样例分析一下,关键在于保证找到的三个数没有公约数。奇数很容易找到,偶数要分情况讨论,关键在于排除公约数2和3的干扰。题目数据有问题,最多只能过60%。醉了。。。。
代码实现:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n, number;
cin>>n;
if( n <= 2 )
{
number = 2;
}
else
{
if( n%2 == 1 )
{
number = n*(n-1)*(n-2);
}
else
{
if( n%3 != 0 )
number = n*(n-1)*(n-3);
else
number = (n-1)*(n-2)*(n-3);
}
}
cout<<number<<endl;
return 0;
}