蓝桥杯 ALGO-2:最大最小公倍数

时间:2022-08-04 00:30:03
  算法训练 最大最小公倍数  
时间限制:1.0s   内存限制:256.0MB
      
锦囊1
使用贪心来选择。
锦囊2

当n为奇数时,答案一定是n*(n-1)*(n-2)。

当n为偶数时,答案可能是(n-1)*(n-2)*(n-3),也可能是n*a*b,其中a>=n-3。

问题描述

已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。

输入格式

输入一个正整数N。

输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定

1 <= N <= 106

这道题在蓝桥杯官网上的标签是贪心,但是真的不知道怎么用贪心写(也许是我太弱?)。反正百度搜了好久也没有找到用贪心

的写法。感觉这道题是在考规律(数论)

#include<bits/stdc++.h>
#define ll long long//注意数据的范围
using namespace std;
int main()
{
	ll n,gcd;
	cin>>n;
	if(n<=2) cout<<n<<endl;
	else
	{
		if(n%2) cout<<n*(n-1)*(n-2)<<endl;
		else
		{
			if(n%3==0)
			{
				cout<<(n-1)*(n-2)*(n-3);
			}
			else
			{
				cout<<n*(n-1)*(n-3)<<endl;
			}
		}
	}
	return 0;
}