JAVA-蓝桥杯-算法训练-最大最小公倍数
问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式
输入一个正整数N。
输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定
1 <= N <= 106。
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==1){
System.out.println(n*(n-1)*(n-2));
}else {
if (n%3==1) {
System.out.println(n*(n-1)*(n-3));
}else {
System.out.println((n-1)*(n-2)*(n-3));
}
}
}
}
当n为奇数时,n n-1 n-2 三个数是互质的。
当n为偶数时,n 与 n-2 有公约数2。
这时要再考虑 n-1 n-2 n-3 与 n n-1 n-3 两种情况。
第二种情况在当n能被3整除时 n 与 n-3 存在公约数3,故舍。否则取。
运行后没有AC, 得分是50,
去网上查了一下,好像说是蓝桥杯系统有问题,如果本人错了希望大家可以帮忙指出。