java中求最小公倍數(shù)的方法-創(chuàng)新互聯(lián)

這篇文章運用簡單易懂的例子給大家介紹java中求最小公倍數(shù)的方法,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)公司公司2013年成立,先為上猶等服務(wù)建站,上猶等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為上猶企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

問題描述:

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

輸入格式:

輸入一個正整數(shù)N。

輸出格式:

輸出一個整數(shù),表示你找到的最小公倍數(shù)。

樣例輸入:

9

樣例輸出:

504

數(shù)據(jù)規(guī)模與約定:

1 <= N <= 106

思路:

首先聲明幾個概念:

兩個非0相鄰自然數(shù)的最小公倍數(shù)是它們的乘積;相鄰兩個奇數(shù)的最小公倍數(shù)是它們的乘積;相鄰兩個偶數(shù)(0除外)的最小公倍數(shù)是它們乘積的一半。

現(xiàn)在上升到三個數(shù)的最小公倍數(shù),要按照N的奇偶性分兩種情況:

一、當n為奇數(shù):n、n-1、n-2的乘積

二、當n為偶數(shù):n-1、n-2、n-3是一組極大解,如果答案要大于當前值,只能是大于這3個數(shù)的乘積,那么只能把其中一個數(shù)變成n,并且三個數(shù)也要兩兩互質(zhì)。n、n-2、n-3偶偶奇明顯不互質(zhì);n、n-1、n-3偶奇奇;n、n-1、n-2偶奇偶明顯不互質(zhì)。

那么答案只能是n-1、n-2、n-3或者是n、n-1、n-3。但是n、n-3雖然是一個奇數(shù),一個偶數(shù),但是它們不連續(xù)可能不互質(zhì)例如5,6,3三個數(shù)。

n為奇數(shù):n、n-1、n-2

n為偶數(shù): n是3的倍數(shù) n-1、n-2、n-3

n不是3的倍數(shù) 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));
        }
    }


}

題目:輸入兩個正整數(shù)m和n,求其大公約數(shù)和最小公倍數(shù)。

程序分析:利用輾除法。

示例二:


package one;

import java.util.*;public class ProOne {

public static void main(String[] args)

{

int m=0,n=0,m1=0,n1=0;

int a;

Scanner scanner = new Scanner(System.in);

System.out.println("請輸dao入m的值:");

m=scanner.nextInt();

System.out.println("請輸入n的值:");

n=scanner.nextInt();

//將輸入的m和n值備份;

m1=m;

n1=n;

//取得兩個數(shù)相除的余數(shù);

a=m%n;

while(a!=0)

{

m1=n1;n1=a;a=m1%n1;

}

System.out.println("m,n的大公約數(shù)為:"+n1);

//求兩個數(shù)字的最小公倍數(shù)的方法為:(兩個數(shù)的乘積)/(兩個數(shù)字的大公約數(shù));

System.out.println("m,n兩個數(shù)的最小公倍數(shù)為:"+m*n/n1);

}

}

技巧:考慮N<3的情況,而且這道題注意用long。

關(guān)于java中求最小公倍數(shù)的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

網(wǎng)頁題目:java中求最小公倍數(shù)的方法-創(chuàng)新互聯(lián)
當前地址:http://www.muchs.cn/article22/hgscc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、外貿(mào)建站定制網(wǎng)站、云服務(wù)器、外貿(mào)網(wǎng)站建設(shè)、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司