算法训练 最大最小公倍数
时间限制:1.0s 内存限制:256.0MB
问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式
输入一个正整数N。输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定
1 <= N <= 10^6。
//未正确,60分
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
long n;
n=sca.nextLong();
if(n%2==0) {
System.out.println(n*(n-1)*(n-3));
}
else {
System.out.println(n*(n-1)*(n-2));
}
}
}
分析:未考虑足情况,当n%2==0时,存在n*(n-3)的情况,所以要判断是否n%3==0.
//满分版
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
long n;
n=sca.nextLong();
if(n%2==0) {
//System.out.println(n*(n-1)*(n-3));
if(n%3==0)System.out.println((n-1)*(n-2)*(n-3));
else
System.out.println(n*(n-1)*(n-3));
}
else {
System.out.println(n*(n-1)*(n-2));
}
}
}