蓝桥杯 最大最小公倍数 Java
思路:1~N选出三个整数,求其最“大”公倍数,那么就从数字N依次往后推算
/*
* 已知一个正整数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.nextInt();
long max;//定义最小公倍数
if (N<=2) {
max = N;//N为1 , 2 的情况
}else if (N%2 == 1) {//判断N是否为奇数,如为基数,则N N-1 N-2 互质
max = N*(N-1)*(N-2);
}else if (N%3 != 0) {//此处表面N为偶数,N与N-2有最大公倍数2,但与N-3互质,固所选第三位整数往后推一位,即N-3
max = N*(N-1)*(N-3);
}else {//此处表面,此时的N与另两位整数总有最大公约数,固选择的三个整数整体往后推一位,即N-1 N-2 N-3
max = (N-1)*(N-2)*(N-3);
}
System.out.print(max);
}
}
注:第一次发文章,有些表达不是很清楚,请谅解。