算法筆記_078:藍橋杯練習 最大最小公倍數(Java)


目錄

1 問題描述

2 解決方案

 


1 問題描述

問題描述

已知一個正整數N,問從1~N中任選出三個數,他們的最小公倍數最大可以為多少。

輸入格式

輸入一個正整數N。

輸出格式
輸出一個整數,表示你找到的最小公倍數。
樣例輸入
9
樣例輸出
504
數據規模與約定

1 <= N <= 106。

 


2 解決方案

本題主要考查貪心法思想的運用,以及對於求取最小公倍數的數學基本知識。

注意,定義輸入的數據類型一定要為long型,輸出類型也一定要為long型,否則不管怎樣提交都只能得0分。

 

具體代碼如下:

import java.util.Scanner;

public class Main {

    public void printResult(long n) {
        long result = 0;
        if(n <= 2)  //此時最多只能選擇兩個數,不符合題意
            return;
        if(n % 2 == 1) {
            result = n * (n - 1) * (n - 2);    
        } else {
            if(n % 3 == 0)  //說明n和n - 3有最大公約數3
                result = (n - 1) * (n - 2) * (n - 3);
            else
                result = n * (n - 1) * (n - 3);
        }
        System.out.println(result);
        return;
    }
    
    public static void main(String[] args) {
        Main test = new Main();
        Scanner in = new Scanner(System.in);
        long n = in.nextLong();
        test.printResult(n);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM