问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式
输入一个正整数N。
输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定
1 <= N <= 106。
解题思路
首先你要知道三个最小公倍数怎么求?(怎么求三个数的最小公倍数?请举几个实例https://wenwen.sogou.com/z/q827089478.htm)
其次,通过在草稿纸上列出1~9,你会发现这里分为偶数和奇数两种情况。(这里我在偶数情况中漏掉了(n-1)*(n-2)*(n-3)这种情况……)
需要注意,在进入偶数情况后,还要再分是否能被三整除。(一开始我在偶数下进行n*(n-1)*(n-3)于(n-1)*(n-2)*(n-3)的比较,结果……long long类型也拯救不了我)。
附上代码
#include<iostream>
using namespace std;
int main()
{
long long n;
cin>>n;
if(n<=2)
cout<<n<<endl;
else if(n%2==0)
{
if(n%3==0)
cout<<(n-1)*(n-2)*(n-3)<<endl;
else
cout<<n*(n-1)*(n-3)<<endl;
}
else if(n%2!=0)
cout<<n*(n-1)*(n-2)<<endl;
return 0;
}