最大最小公倍数

最大最小公倍数

问题描述
已知一个正整数 N,问从 1~N-1 中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式
输入一个正整数 N。
输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定
1 <= N <= 106。

思路与想法

没错,今天的题我又差点看不懂了,然后我一开始想的是找质数,在范围里面找质数
也写了个代码,但是我发现。。。有点不对劲,草率了,无论什么条件都不符合要求规则,就算能写出来代码也会很复杂
于是我就去向度娘取经了,才知道这是一个算法规则,是叫贪心算法的吧?。。。

代码如下
C++

#include <iostream>
#include <string>
using namespace std;
void main(){
	int i;
	int N;
	int max;
	cin>>N;
	if(N%2!=0){ //奇数
		max=N*(N-1)*(N-2);
		cout<<max;
	}
	else { //偶数
		if(N%3==0){
			max=(N-1)*(N-2)*(N-3);
			cout<<max;
		}
		else{
			max=N*(N-1)*(N-3);
			cout<<max;
		}
	}
	return ;
}

java

import java.util.Scanner;
public class minMax {
    public static void main(String[] args) {
        Scanner in= new Scanner(System.in);
        int N = in.nextInt();
        int i;
        int max;
        if(N%2!=0){ //奇数
            max=N*(N-1)*(N-2);
            System.out.print(max);
        }
        else { //偶数
            if(N%3==0){
                max=(N-1)*(N-2)*(N-3);
                System.out.print(max);
            }
            else{
                max=N*(N-1)*(N-3);
                System.out.print(max);
            }
        }
    }
}

最大最小公倍数

上一篇:(四)typescript之类


下一篇:AC自动机