1. 程式人生 > >java實現最大公約數和最小公倍數(每天一道演算法題)

java實現最大公約數和最小公倍數(每天一道演算法題)

題目:輸入兩個正整數,求其最大公約數和最小公倍數。

程式思路:

  1. 除數不能為0
  2. 將較大的那個數對較小的那個數取餘;(如果a>=b,那就a%b),
  3. 取餘得出的結果為下次預算的除數,上面較小的那個數將作為被除數
  4. 知道運算到較小為0時,返回較大的數,這個數就是最大公約數
  5. 最小公倍數就是 原來的兩個正整數的積除以最大公約數。

下面java程式碼:

package com.imooc;
import java.util.Scanner;
public class Suanfa3 {
    public static void main(String[] args) {
        System.out
.println("請輸入兩個整數:"); Scanner input1 =new Scanner(System.in); int a = input1.nextInt(); int b =input1.nextInt(); int u= a*b; // 用u來儲存 a*b 的值 while(b>0){ if(a>=b&&a%b!=0){ int
t = b; b = a%b; // 利用了遞迴演算法 a = t; }else if(a%b==0){ break; // a剛好是b的倍數 }else{ int s = a; // 當 a < b 時 ,a b的值交換 a = b; b = s; } } System.out
.println("兩個數的最大公約數為:"+b); System.out.println("兩個數的最小公倍數為:"+u/b); } }

相關推薦

java實現大公約數小公倍數每天一道演算法

題目:輸入兩個正整數,求其最大公約數和最小公倍數。 程式思路: 除數不能為0 將較大的那個數對較小的那個數取餘;(如果a>=b,那就a%b), 取餘得出的結果為下次預算的除數,上面較小的那個數將作為被除數 知道運算到較小為0時,返回較大的數,這個數就

程式設計練習題:實現大公約數小公倍數Java

使用輾轉相除法可以快速的實現求最大公約數,而最小公倍數可以通過最大公約數求出。那麼輾轉相除法的原理是什麼呢? 輾轉相除法,又名歐幾里德演算法,是已知最古老的演算法,其可追溯至公元前300年前。

java中請給出例子程序:找出兩個數的大公約數小公倍數

strong big ont com 約數 計算 www main .html 9.2 找出12和8的最大公約數和最小公倍數。 (視頻下載) (全部書籍) public class Test { public static void main(String[]

輸入兩個正整數mn,求其大公約數小公倍數java

package com.gaoshixian; import java.util.Scanner; public class Test { public static void main(String[] args) { int a, b, num1, num2,

大公約數小公倍數java語言

package com.sun.maxCommonDivisorAndminCommonMultiple; /** * * @author:孫創 * @date:2017年4月10日 * @Discription://求最大公約數和最小公倍數 */ publi

java演算法——求大公約數小公倍數

//求最大公約數和最小公倍數 /*求最大公約數方法:輾轉相除法始終用較大數除以較小數,然後用餘數代替較大數整除時的除數就是最大公約數 舉例:222 407求最大公約數222 407(407除以222餘

求兩個整數的大公約數小公倍數通過呼叫自定義函式實現

>#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int yue(int x, int y); //int yue_2(int

[Java]練習題006: 求兩個數的大公約數小公倍數

【程式6】題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數。 1.程式分析:利用輾除法。 import java.util.*; public class Test6 { public sta

大公約數小公倍數

描述 出現 mage 最大公約數 images code ger return ges 一、問題描述 從鍵盤輸入兩個正整數a和b,求其最大公約數和最小公倍數。 二、算法思想及代碼 求最小公倍數算法:最小公倍數=兩整數的乘積÷最大公約數 求最大公約數算法: (1)輾轉相除法

大公約數小公倍數的標準解法記住

button one none esc sam per efault 等級 b- 1012 最大公約數和最小公倍數問題 2001年NOIP全國聯賽普及組 時間限制: 1 s 空間限制: 128000 KB 題目等級 : 白銀 Silver

洛谷 P1029 大公約數小公倍數問題

copy floor ont splay sample 最小公倍數 數學 分享圖片 sam P1029 最大公約數和最小公倍數問題 題目描述 輸入二個正整數x0,y0(2<=x0<100000,2<=y0<=100

求一組數據的大公約數小公倍數

valid 約數 public argc oid pos define min 最小 求最大公約數采用輾轉相除法 求最小公倍數 = 最大公約數 * (A/最大公約數)*(B/最大公約數) //#include<stdafx.h> #include<

18.2.13 codevs1012 大公約數小公倍數問題

end scrip body math iostream pen 分享 name 約數和 1012 最大公約數和最小公倍數問題 2001年NOIP全國聯賽普及組 題目描述 Description 輸入二個正整數x0,y0(2&

求兩個數的大公約數小公倍數

兩個 rem pac [] while ext bre list AS package java; import java.util.ArrayList; import java.util.List; import java.util.Scanner; pu

求兩個正整數的大公約數小公倍數

公倍數 最大 sys static () 一個 AR ati scanner import java.util.Scanner;public class Gyb { public static void main(String[] args) {

求兩個數的大公約數小公倍數

esp long cout gcd urn clas 代碼 () else 求最大公約數利用輾轉相除法: long long gcd(long long a,long long b) { if(b==0) return a; else

南陽oj 大公約數小公倍數

lse cout 約數和 ret return space urn stream end #include<iostream>#include<algorithm>using namespace std;int main (){ int n; cin

用分解質因數求兩個數字的大公約數小公倍數

分解質因數採用Pollard Rho快速因數分解演算法,該演算法描述如下: 輸入一個任意數字n後,從最小的質數k=2開始,按下述步驟完成: 1 如果k恰等於n,則說明分解質因數的過程已經結束,打印出即可。 2 如果n>k,但n能被k整除,則應打印出k的值,並用n除以k的商作為新的正

兩個數的大公約數小公倍數

一、思路: 1、最大公約數和最小公倍數的範圍: 最大公約數:1——兩個數中的最小值 最小公倍數:兩數中的最大值——兩數之積 2、最小公倍數: 在範圍內,由大到小,依次分別除以兩個數,第一個同時整除的數字即為最小公倍數 3、最大公約數: 在範圍內,由小到大,分別

洛谷 P1029 大公約數小公倍數問題 gcd&lcm

題目描述 輸入22個正整數x_0,y_0(2 \le x_0<100000,2 \le y_0<=1000000)x0​,y0​(2≤x0​<100000,2≤y0​<=1000000),求出滿足下列條件的P,QP,Q的個數 條件: P,QP,Q是正整數 要求P,