问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式
输入一个正整数N。
输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定
1 <= N <= 106。
要使得三个数的最小公倍数尽量大,这三个数是连续的时候相乘最大,就比如n,n-1,n-2三个数相乘一定很大。但考虑到几种情况,如果他们中有两个偶数那么最小公倍数就是三个数相乘再除以二,如果他们中n是三的倍数那么n-3一定也是,最小公倍数又变小了。所有我们分类考虑;使得这三个数尽量挨在一起相差不大,最好情况是连续,并且这三个数没有公因数2,3。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
long n=sc.nextLong();
if(n%2!=0)
{
System.out.print((n-2)*(n-1)*n);
}
else
if(n%3==0)
{
System.out.print((n-1)*(n-2)*(n-3));
}
else
{
System.out.print(n*(n-1)*(n-3));
}
}
}