import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
long n=in.nextInt();
long max;
if(n<=2)
max=n;
else if(n%2==1)//“奇-偶-奇”结构互质为最大公倍数
max=n*(n-1)*(n-2);
else if(n%3==0) //"偶-奇-偶"结构
max=(n-1)*(n-2)*(n-3);
else
max=n*(n-1)*(n-3);
System.out.println(max);
}
}
下面代码这是自己一开始的写的,超时代码,看是不有人跟我一样。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();
if(n==1) {
System.out.println(1);
}else if(n==2) {
System.out.println(2);
}else {
long max=1;
for(int i=1;i<=n;i++) {
for(int j=1;j<=n;j++) {
for(int k=1;k<=n;k++) {
if(i!=j&&j!=k&&i!=k&&((i*j*k)/f(i,j,k))>max) {
max=(i*j*k)/f(i,j,k);
}
}
}
}
System.out.println(max);
}
}
private static int f(int i, int j, int k) {
int n;
int max=1;
if(i<j&&i<k) {
n=i;
}else if(i<j&&i>=k) {
n=k;
}if(i>=j&&i<k) {
n=j;
}else if(i>=j&&i>=k&&j>k){
n=k;
}else {
n=j;
}
for(int x=1;x<=n;x++) {
if(i%x==0&&j%x==0&&k%x==0) {
max=x;
}
}
return max;
}
}