资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式
输入一个正整数N。
输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定
1 <= N <= 106。
import java.util.Scanner;
public class Main {
// public static int gcd(int a,int b){ //最小公约数
// return b == 0 ? a : gcd(b, a % b);
// }
// public static int lcm(int a,int b){ //最大公倍数
// return a * b / gcd(a,b);
// }
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
long ans;
// 暴力 超时........
// for(int i = n; i >= 2; i--) {
// for(int j = i-1; j >= 2; j--) {
// for(int k = j - 1; k >= 2; k--) {
// if(i != j && i != k && max < lcm(lcm(k,j),i)) {
// max = lcm(lcm(k,j),i);
// }
// }
// }
// }
if(n <= 2) { //小于等于2
ans = n;
}else if(n % 2 == 1) { //奇数 最小公倍数的最大值为末尾的三个数相乘 9
ans = n * (n-1) * (n-2);
}else if(n % 3 == 0) { //偶数 不是倍数 如8
ans = (n-1) * (n-2) * (n-3);
}else { //偶数 是三的倍数 如6
ans = n * (n-1) * (n-3);
}
System.out.print(ans);
}
}