很簡單,用輾轉(zhuǎn)相除法, 又名歐幾里德算法(Euclidean algorithm)。它的具體做法是:用較小數(shù)除較大數(shù),再用出現(xiàn)的余數(shù)(第一余數(shù))去除除數(shù),再用出現(xiàn)的余數(shù)(第二余數(shù))去除第一余數(shù),如此反復(fù),直到最后余數(shù)是0為止。如果是求兩個(gè)數(shù)的最大公
本文我們將從以下幾個(gè)部分來詳細(xì)介紹如何找出兩個(gè)整數(shù)的最大公因數(shù):使用除數(shù)算法、利用素因數(shù)
兩個(gè)數(shù)的最大公約數(shù),也叫最大公因數(shù),或最高公因數(shù),是最大的能整除兩個(gè)整數(shù)的數(shù),比如20和16最大公因數(shù)是4(20和16都有更大的因數(shù),但不是公因數(shù)了,比如8是16的因數(shù),卻不是20的因數(shù))。學(xué)校中很多老師教的是“猜后驗(yàn)證”法找最大公因數(shù),但是其實(shí)有更簡單更系統(tǒng)的方法來準(zhǔn)確找到最大公因數(shù)。本方法叫“歐幾里德算法”。設(shè)兩數(shù)為'a'、 'b'第一部分:使用除數(shù)算法
有一種叫輾轉(zhuǎn)相除法 兩個(gè)整數(shù)的最大公約數(shù)等于“其中較小的數(shù)”和“兩數(shù)的差”的最大公約數(shù)。 例如,252和105的最大公約數(shù)是21(252 = 21 × 12;105 = 21 × 5); 因?yàn)閮蓴?shù)之差252 − 105 = 147, 147和105的最大公約數(shù)是21。所以252和105的最
第1步:去掉負(fù)號。
輾轉(zhuǎn)相除法:如果兩個(gè)數(shù)有公因數(shù),那么這個(gè)公因數(shù)也是這兩個(gè)數(shù)的差的公因數(shù)。你按照這個(gè)精神一定能學(xué)好這個(gè)知識。不妨設(shè)這兩個(gè)數(shù)分別為M和N,且M>N;其公因數(shù)為k。則:M=km,N=kn;M-N=(m-n)k。從而將問題轉(zhuǎn)化為較小的一組數(shù):N和M-N求公因數(shù)的
第2步:了解相關(guān)詞匯(32除以5):
最佳答案 最大公約數(shù),也稱最大公因數(shù)、最大公因子,指兩個(gè)或多個(gè)整數(shù)共有約數(shù)中最大的一個(gè)。a,b的最大公約數(shù)記為(a,b),同樣的,a,b,c的最大公約數(shù)記為(a,b,c),多個(gè)整數(shù)的最大公約數(shù)也有同樣的記號。求最大公約數(shù)有多種方法,常見的
32 是被除數(shù)
1、短除法 為了簡便,需要把兩個(gè)數(shù)的分解過程用同一個(gè)短除法來表示,那么最大公因數(shù)就是所有除數(shù)的乘積。 例如:求180和324的最大公因數(shù)。 因?yàn)椋?和9互質(zhì),所以180和324的最大公因數(shù)是4×9=36。 2、觀察法 采用能被2、3、5整除的數(shù)的特征來進(jìn)行
5 是除數(shù)
6 是商
2 是余數(shù)(模數(shù))
如果較大數(shù)是較小數(shù)的倍數(shù),那么較大數(shù)就是這兩個(gè)數(shù)的最小公倍數(shù). 如果兩個(gè)數(shù)是互質(zhì)數(shù),那么這兩個(gè)數(shù)的積就是它們的最小公倍數(shù).
第3步:找兩個(gè)數(shù)較大的一個(gè),作為被除數(shù)。
最小公倍數(shù): 可以使用整除法. 一直除到兩個(gè)數(shù)互質(zhì),那么所有除數(shù)的乘積即最大公約數(shù) 而最小公倍數(shù)則是所有的因子,商相乘 例如64,40 2 |64 40 除以2, 2 |32 20 商32,20 2 |16 10 繼續(xù)除以2,商16,10 |8 5 繼續(xù)除以2,商8,5 8,5互質(zhì),所以不能再除了
小的數(shù)作為除數(shù)。
import java.util.Scanner; public class Du2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("請輸入第一個(gè)數(shù)字 "); int num1 = scanner.nextInt(); System.out.print("請輸入第2個(gè)
第4步:寫出公式?:
建議使用輾轉(zhuǎn)相除法。http://baike.baidu.com/view/255668.htm (百度百科中就包含了代碼了。) 輾轉(zhuǎn)相除法。找出最大公約數(shù)之后,求公倍數(shù)就時(shí):兩者相乘再除以公約數(shù)。
(被除數(shù)) = (除數(shù)) * (商) + (余數(shù))
短除法簡介: 短除法是求最大公因數(shù)的一種方法,也可用來求最小公倍數(shù)。求幾個(gè)數(shù)最大公因數(shù)的方法,開始時(shí)用觀察比較的方法,即:先把每個(gè)數(shù)的因數(shù)找出來,然后再找出公因數(shù),最后在公因數(shù)中 找出最大公因數(shù)。后來,使用分解質(zhì)因數(shù)法來分別分解
第5步:大的數(shù)作為被除數(shù),小的作為除數(shù)。
第一:先把這兩個(gè)數(shù)分解質(zhì)因數(shù)。 最大公因數(shù)就用它們公有的質(zhì)因數(shù)的相乘; 最小公倍數(shù)就用它們公有的質(zhì)因數(shù)相乘,再乘各自獨(dú)有的質(zhì)因數(shù)。 如:12和18 12=2乘2乘3 18=2乘3乘3 公有的質(zhì)因數(shù)是2和3,獨(dú)有的質(zhì)因數(shù)12有2,18有3. 因此最大公因數(shù)=2
第6步:得出商。
public class Test { public static void main(String[] args){ Test t = new Test(); int x = 240; int y = 880; System.out.println(t.(x,y)); } private int (int x,int y){ int re = 0; while(x!=y){ if(x>y){ x=x-y; re =x; (x,y)
第7步:得出余數(shù),寫入公式。
一般用短除法求兩個(gè)數(shù)的最大公因數(shù)和最小公倍數(shù) 用短除法求最大公因數(shù)和最小公倍數(shù)的方法步驟: 第一步:找出兩數(shù)的最小公因數(shù),列短除式,用最小公因數(shù)去除這兩個(gè)數(shù),得到兩個(gè)商; 第二步:然后找出兩個(gè)商的最小公因數(shù),用最小公因數(shù)去除這兩個(gè)
第8步:再寫出公式,不過用上面的除數(shù)代替這里的被除數(shù),上面的余數(shù)作為除數(shù)。
分別把2個(gè)數(shù) 分解質(zhì)因數(shù);找出共同的來,乘起來,那個(gè)數(shù)就是。 例子。108 和96: 108=2x2x3x3x3 96=2x2x2x2x3 共同是一個(gè)2,一個(gè)3 所以最大公因數(shù)是 2x3=6. 希望對你有幫助
第9步:一直重復(fù)步驟直到余數(shù)為零。
看幾個(gè)數(shù),先算2個(gè)數(shù)的最大公因數(shù),再算這個(gè)最大公因數(shù)和第3個(gè)數(shù)的最大公因數(shù),如此循環(huán)一直到和最后一個(gè)數(shù)的最大公因數(shù)就是所有數(shù)的最大公因數(shù)。最小公倍數(shù)也一樣處理。
第10步:最后一個(gè)除數(shù),就是最大公因數(shù)了。
#includeint main(){ int a,b,num1,num2,temp; printf("Input a & b:"); scanf("%d%d",&num1,&num2); if(num1>num2) /*找出兩個(gè)數(shù)中的較大值*/ { temp=num1; num1=num2; num2=temp; /*交換兩個(gè)整數(shù)*/ } a=num1; b=num2; while(b!=0) /*采用輾轉(zhuǎn)
第11步:這個(gè)例子中我們找出108和30的最大公因數(shù):
#includeusing namespace std;int main(){ short a, b; cin >> a >> b; short c, m(a), n(b); while (c = a%b) { a = b; b = c; } cout
第12步:注意第一行30和18在第二行的位置,然后除數(shù)變被除數(shù),余數(shù)變除數(shù),以此類推。
找出12和8的最大公約數(shù)和最小公倍數(shù)。 public class Test { public static void main(String[] args) { getcommon_mu(12,8); getcommon_div(12,8); } //計(jì)算 最大公約數(shù) 和 最小公倍數(shù) static void getcommon_mu(int n, int m) { int i, b, d; b
其中每一行的商都和其他的商意義不同,只隸屬于這一行,對其他行沒用。
怎樣最快找出兩個(gè)數(shù)的最大公因數(shù) 有一種叫輾轉(zhuǎn)相除法 兩個(gè)整數(shù)的最大公約數(shù)等于“其中較小的數(shù)”和“兩數(shù)的差”的最大公約數(shù). 例如,252和105的最大公約數(shù)是21(252 = 21 × 12;105 = 21 × 5); 因?yàn)閮蓴?shù)之差252 − 105 = 147, 147和105的最大
第二部分:利用素因數(shù)
最大公約數(shù),也稱最大公因數(shù)、最大公因子,指兩個(gè)或多個(gè)整數(shù)共有約數(shù)中最大的一個(gè)。a,b的最大公約數(shù)記為(a,b),同樣的,a,b,c的最大公約數(shù)記為(a,b,c),多個(gè)整數(shù)的最大公約數(shù)也有同樣的記號。求最大公約數(shù)有多種方法,常見的有質(zhì)因數(shù)
第1步:去掉負(fù)號。
輾轉(zhuǎn)相除法:如果兩個(gè)數(shù)有公因數(shù),那么這個(gè)公因數(shù)也是這兩個(gè)數(shù)的差的公因數(shù)。你按照這個(gè)精神一定能學(xué)好這個(gè)知識。不妨設(shè)這兩個(gè)數(shù)分別為M和N,且M>N;其公因數(shù)為k。則:M=km,N=kn;M-N=(m-n)k。從而將問題轉(zhuǎn)化為較小的一組數(shù):N和M-N求公因數(shù)的
第2步:分別找出兩數(shù)的素因子分解,列出來。
分解質(zhì)因數(shù)只針對合數(shù),即把一個(gè)合數(shù)分解成若干個(gè)質(zhì)因數(shù)的乘積的形式,求一個(gè)數(shù)分解質(zhì)因數(shù),要從最小的質(zhì)數(shù)除起,一直除到結(jié)果為質(zhì)數(shù)為止。分解質(zhì)因數(shù)的算式叫短除法,和除法的性質(zhì)差不多,還可以用來求多個(gè)個(gè)數(shù)的公因式。短除法是求最大公因數(shù)
24和18為例:
828、508怎樣找出兩個(gè)數(shù)的最大公因數(shù) 輾轉(zhuǎn)相除法 828-508=320 508-320=188 320-188=132 188-132=56 132-56=76 76-56=20 56-20=32 32-20=12 20-12=8 12-8=4 所以828、508的最大公因數(shù)是4
24- 2 x 2 x 2 x 3
可以用短除法求任意兩個(gè)非0整數(shù)的最大公因數(shù) 短除法: 短除法是求最大公因數(shù)的一種方法,也可用來求最小公倍數(shù)。求幾個(gè)數(shù)最大公因數(shù)的方法,開始時(shí)用觀察比較的方法,即:先把每個(gè)數(shù)的因數(shù)找出來,然后再找出公因數(shù),最后在公因數(shù)中找出最大公因
18- 2 x 3 x 3
#include int (int x, int y); ///最大公約數(shù) int lcm(int x, int y); ////最小公倍數(shù) int main() { int a,b; scanf("%d%d",&a,&b); printf(":%d,lcm:%dn", (a,b),lcm(a,b)); return 0; } int (int x, int y) { int r; do { r=x%y;
50和35為例:
分解質(zhì)因數(shù)只針對合數(shù),即把一個(gè)合數(shù)分解成若干個(gè)質(zhì)因數(shù)的乘積的形式,求一個(gè)數(shù)分解質(zhì)因數(shù),要從最小的質(zhì)數(shù)除起,一直除到結(jié)果為質(zhì)數(shù)為止。分解質(zhì)因數(shù)的算式叫短除法,和除法的性質(zhì)差不多,還可以用來求多個(gè)個(gè)數(shù)的公因式。 短除法是求最大公因數(shù)
50- 2 x 5 x 5
#include #include int array(int *,int); void main(void) { int n, i, j, data[100][100]; scanf("%d", &n); for(i=0; i
35- 5 x 7
第3步:找出共同素因子
24、18為例
24- 2
x 2 x 2 x 3
18- 2
x 3
x 3
50和35為例
50- 2 x 5
x 5
35- 5
x 7
第4步:素因子相乘,得出最大公因數(shù)。
24和18的例子中,2乘以3得到6,即最大公因數(shù)。
50和35例子中,5是唯一的共同素因子,即最大公因數(shù)。
第5步:完成。
小提示
另一種方式來寫,就是被除數(shù)mod除數(shù)= 余數(shù)。余數(shù)為0則GCD(最大公因數(shù))(a,b) = b, 其他情況下GCD(a,b) = GCD(b, a mod b)
比如找GCD(-77,91)。 先用77 替換 -77,GCD(-77,91) 變?yōu)?GCD(77,91) 。 77 小于91,因此換個(gè)位置。看看是否能用公式來算。下面因?yàn)?7 mod 91得到77 (因?yàn)?77 = 91 x 0 + 77) ,我們要的不是0作為最大公因數(shù),因此(a, b) 轉(zhuǎn)換為 (b, a mod b)得到: GCD(77,91) = GCD(91,77)。 91 mod 77 得到 14 (這意味著14 是余數(shù)) ,因?yàn)椴皇?,就把GCD(91,77) 替換為GCD(77,14) 。 77 mod 14 得到7 也不是0,再把GCD(77,14) 換成 GCD(14,7)。 14 mod 7 得到0。因?yàn)?14 = 7 * 2 無余數(shù),最大公因數(shù): GCD(-77,91) = 7
若 'a' 、 'b' 都是0,則任何非零數(shù)都是他們的公因數(shù),所以沒有最大公因數(shù)。數(shù)學(xué)家一般就說最大公因數(shù)是0,這個(gè)就是本例中方法得到的。
可以用這種方法很有效地化簡分?jǐn)?shù)。比如上述例子,-77/91 化簡為 -11/13 因?yàn)?是-77 、91的最大公因數(shù)。
擴(kuò)展閱讀,以下內(nèi)容您可能還感興趣。
用短除法怎樣求兩個(gè)數(shù)的最大公因數(shù)
短除法簡介:
短除法是求最大公因數(shù)的一種方法,也可用來求最小公倍數(shù)。求幾個(gè)數(shù)最大公因數(shù)的方法,開始時(shí)用觀察比較的方法,即:先把每個(gè)數(shù)的因數(shù)找出來,然后再找出公因數(shù),最后在公因數(shù)中
找出最大公因數(shù)。后來,使用分解質(zhì)因數(shù)法來分別分解兩個(gè)數(shù)的因數(shù),再進(jìn)行運(yùn)算。之后又演變?yōu)槎坛?,一起用質(zhì)數(shù)除,最后再整理。
請教如何快速找出兩個(gè)數(shù)或者三個(gè)數(shù)的最大公因數(shù)呢?
∷淙幌衷詰男⊙Ы灘慕駁煤萇倭耍
怎樣求兩個(gè)數(shù)的“最大公因數(shù)”和“最小公倍數(shù)”?
第一:先把這兩個(gè)數(shù)分解質(zhì)因數(shù)。
最大公因數(shù)就用它們公有的質(zhì)因數(shù)的相乘;
最小公倍數(shù)就用它們公有的質(zhì)因數(shù)相乘,再乘各自獨(dú)有的質(zhì)因數(shù)。
如:12和18
12=2乘2乘3
18=2乘3乘3
公有的質(zhì)因數(shù)是2和3,獨(dú)有的質(zhì)因數(shù)12有2,18有3.
因此最大公因數(shù)=2乘3=6
最小公倍數(shù)=2乘3乘2乘3=36
如何用JAVA求兩個(gè)整數(shù)的最大公因數(shù)
public class Test {
public static void main(String[] args){
Test t = new Test();
int x = 240;
int y = 880;
System.out.println(t.*(x,y));
}
private int *(int x,int y){
int re = 0;
while(x!=y){
if(x>y){
x=x-y;
re =x;
*(x,y);
}
else{
y=y-x;
re = y;
*(x,y);
}
}
return re;
}
}
運(yùn)行結(jié)果:
80
兩個(gè)數(shù)最大公因數(shù)和最小公倍數(shù)怎么求
一般用短除法求兩個(gè)數(shù)的最大公因數(shù)和最小公倍數(shù)
用短除法求最大公因數(shù)和最小公倍數(shù)的方法步驟:
第一步:找出兩數(shù)的最小公因數(shù),列短除式,用最小公因數(shù)去除這兩個(gè)數(shù),得到兩個(gè)商;
第二步:然后找出兩個(gè)商的最小公因數(shù),用最小公因數(shù)去除這兩個(gè)商,得到新一級的兩個(gè)商;
第三步:以此類推,直到這兩個(gè)商為互質(zhì)數(shù)(即兩個(gè)商只有公因數(shù)1)為止;
第四步:將所有的公因數(shù)相乘,所得的積就是兩個(gè)數(shù)的最大公因數(shù);將所有的公因數(shù)及最后的兩個(gè)商相乘,所得積就是兩個(gè)數(shù)的最小公倍數(shù)。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com