java實現最大公約數和最小公倍數(每天一道演算法題)
題目:輸入兩個正整數,求其最大公約數和最小公倍數。
程式思路:
- 除數不能為0
- 將較大的那個數對較小的那個數取餘;(如果a>=b,那就a%b),
- 取餘得出的結果為下次預算的除數,上面較小的那個數將作為被除數
- 知道運算到較小為0時,返回較大的數,這個數就是最大公約數
- 最小公倍數就是 原來的兩個正整數的積除以最大公約數。
下面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[]
輸入兩個正整數m和n,求其最大公約數和最小公倍數(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,