ホームページ >Java >&#&ベース >Javaで最小公倍数を計算する方法

Javaで最小公倍数を計算する方法

王林
王林転載
2019-11-27 14:39:496005ブラウズ

Javaで最小公倍数を計算する方法

問題の説明:

正の整数 N が与えられた場合、1 ~ N からランダムに選択された 3 つの数値の最大最小公倍数は何かを尋ねます。

入力形式:

正の整数 N を入力します。

出力形式:

見つかった最小公倍数を表す整数を出力します。

サンプル入力:

9

サンプル出力:

504

データのスケールと規則:

1 <= N <= 106

推奨されるオンライン学習ビデオ チュートリアル: java コース

アイデア:

最初にいくつかの概念を宣言します:

隣接する 2 つのゼロ以外の自然数の最小公倍数はその積、隣接する 2 つの奇数の最小公倍数はその積、隣接する 2 つの偶数 (0 を除く) の最小公倍数はその積の半分です。

さて、3 つの数値の最小公倍数に関しては、N のパリティに応じて 2 つの状況があります:

1. n が奇数の場合: n、n-1 , n-2 Product

2. n が偶数の場合: n-1、n-2、n-3 は最大解のセットです。答えが現在の値より大きい場合は、これら 3 つの数値より大きい積のみを指定すると、そのうちの 1 つの数値のみが n に変更でき、3 つの数値も互いに素でなければなりません。 n、n-2、n-3 の偶数と奇数は明らかに互いに素ではありません。n、n-1、n-3 は偶数と奇数です。n、n-1、n-2 の偶数と奇数は明らかに互いに素ではありません。

その場合、答えは n-1、n-2、n-3 または n、n-1、n-3 のみになります。ただし、n と n-3 は奇数と偶数ですが、連続しておらず、5、6、3 の 3 つの数字のように互いに素でない場合もあります。

n は奇数です: n、n-1、n-2

n は偶数です: n は 3 の倍数 n-1、n-2、n-3

n は 3 の倍数ではありません n、n-1、n-3

例は次のとおりです:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        long N=input.nextLong();
        long temp=0;
        if(N<=2){
            System.out.println(N);
        }
        else if(N%2==0){
            temp=(N-1)*(N-2)*(N-3);
            if(N%3!=0){
                temp=Math.max(temp,N*(N-1)*(N-3));
            }
            System.out.println(temp);

        }

        else {
            System.out.println(N*(N-1)*(N-2));
        }
    }


}

ヒント: N

推奨される Java 関連記事チュートリアル: Java 開発の入門

以上がJavaで最小公倍数を計算する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。