Ⅰ 用javafor循環求出最大公約數和最小公倍數
Scanner input = new Scanner(System.in);
System.out.println("請輸入第一個正整數:");
int m = input.nextInt();
System.out.println("請輸入第二個正整數");
int n = input.nextInt();
//獲取兩個數最小值
int min =(m <= n)? m:n;
for (int i = min; i >= 1; i--) {
if (m % i == 0 && n % i == 0) {
System.out.println("最大公約數為"+i);
int a=m / i;
int b=n / i;
int multiple = a*b*i;
System.out.println("最小公倍數為"+multiple);
break;
}
}
Ⅱ 怎麼簡單找到兩個數的最小公倍數
如果大數是小數的整倍數,最小公倍數就是大數;如果大數不是小數的整倍數,將兩個數分別分解因數,標記公共的因數,把兩個數的因數相乘,公共的因數只乘一次,就可以了.
例如:
6和36,36是6的整倍數,兩個數的最小公倍數是36.
12和18
12=6×2 18=6×3 有公共的因數6
將兩個數的因數相乘,6×2×6×3,公共的因數是6,只計算一次,劃掉一個6,變成6×2×3=36 .最小公倍數是36.
(2)怎麼循環找到最小公約數數學方法擴展閱讀:
1.列舉倍數法
列舉倍數法(定義求法)就是分別列舉出要求最小公倍數的那幾個數的一些倍數,從中找出除「0」以外最小的那個公倍數,就是最小公倍數。
如:求6和9的最小公倍數。
解:6的倍數有:6,12,18,24,30,36,42……
9的倍數有:9,18,27,36,45……
從上面可以看出6和8的最小公倍數是18。
2.分解質因數法
分解質因數法就是先把要求最小公倍數的那幾個數分別分解質因數,然後將原來幾個數里所含該質因數的最多個數的每一個質因數相乘,所得的積就是要求的最小公倍數。
如:求60、42的最小公倍數。
解:60=2×2×3×5 42=2×3×7
60和42的最小公倍數=2×3×2×5×7=420 。
這種方法是把60和42分別質因數後,觀察相同的質因數只取一個(如2,3),把各自獨有的質因數全部乘進去,所得的積就是這兩個數的最小公倍數。
3.短除法
用短除法求兩個數的最小公倍數,一般都用這兩個數除以它們的公因數,一直除到所得的兩個商只有公因數1為止。把所有的除數和最後的兩個商連乘起來,就得到這兩個數的最小公倍數。
如:求16、28的最小公倍數。
[16、28]=2×2×4×2×7=112。
4.公式法
所謂公式法(最大公約數與最小公倍數關系)就是對於任意兩個自然數a、b,只要先求出這兩個數的最大公約數後,利用公式[a,b] ×(a,b)=a×b即可求出最小公倍數[a,b]=a×b÷(a,b),也即是兩個數的最小公倍數等於這兩個數的乘積除以這兩個數的最大公約數。
如:求[105,42] 。
解:∵(105,42)=21,
∴[105,42]=105×42÷21=210。
特例:如兩個數互質,則這兩個數的最小公倍數就是這兩個數的乘積。
5.輾轉相減後相乘法
求兩個數的最小公倍數,如兩個數相差2倍以內,就可用輾轉相減後相乘法,即連續用大數去減小數,直到所得的差能同時整除原來兩個數為止,然後用這個差與整除的兩個商相乘,所得的乘積就是兩個數的最小公倍數。
如:求[42,30]。
解:∵42-30=12(12+42,12+30),繼續往下減
30-12=18(18+42,18+30),繼續往下減
18-12=6(6│42,6│30),減到此為止
6.大數翻倍法
所謂大數翻倍法就是要求兩個數的最小公倍數,可以將大數從兩倍找起,直到找出的數是小數的倍數(即出現新的倍數關系為止),這個倍數就是這兩個數的最小公倍數。
如:求6和15,14和20的最小公倍數。
解:15的倍數有30,因為30是6的倍數,所以30是6和15的最小公倍數,即[6,15]=30。又因為20的倍數有40,60,80,100,120,140,由於140是14的倍數,所以140是14和20的最小公倍數,即[14,20]=140。
特例:如果大數本身就是小數的倍數,則這兩個數的最小公倍數就是大數。
7.小數縮倍後相乘法
小數縮倍後相乘法就是求兩個數的最小公倍數。如果這兩個數不成倍數關系,就把小數依次除以2,3,4,5……直到除得的商能整除較大數為止,然後用這個商除以較大數所得的商與原來小數相乘所得的積就是這兩個數的最小公倍數。
如:求[10,75]和[25,30]。
解:①因為小數10能被2整除,商是5,而且75÷5=15(整除),所以[10,75]=15×10=150。
②因為小數25能被5整除,商是5,且30÷5=6,所以[25,30]=6×25=150。
8.肉眼判斷法
(1)如果a.b是互質數,那麼a.b的最小公倍數是a×b。
如:求4和5的最小公倍數。
4和5是互質數,那麼4和5的最小公倍數是4×5=20 。
(2)如果兩個數中,較大的數是較小數的倍數,那麼較大的數是這兩個數的最小公倍數。
如:求16和8的最小公倍數。
16是8的倍數,那麼16就是16和8的最小公倍數。
Ⅲ 最小公倍數 最小公約數怎麼找
最小公倍數
幾個數公有的倍數叫做這幾個數的公倍數,其中最小的一個叫做這幾個數的最小公倍數。
最小公倍數的表示:
數學上常用方括弧表示。如[12,18,20]即12、18和20的最小公倍數。
最小公倍數的求法:
求幾個自然數的最小公倍數,有兩種方法:
(1)分解質因數法。先把這幾個數分解質因數,再把它們一切公有的質因數和其中幾個數公有的質因數以及每個數的獨有的質因數全部連乘起來,所得的積就是它們的最小公倍數。
例如,求[12,18,20],因為12=2^2×3,18=2×3^2,20=2^2×5,其中三個數的公有的質因數為2,兩個數的公有質因數為2與3,每個數獨有的質因數為5與3,所以,[12,18,20]=2^2×3^2×5=180。(可用短除法計算)
(2)公式法。由於兩個數的乘積等於這兩個數的最大公約數與最小公倍數的積。即(a,b)×[a,b]=a×b。所以,求兩個數的最小公倍數,就可以先求出它們的最大公約數,然後用上述公式求出它們的最小公倍數。
例如,求[18,20],即得[18,20]=18×20÷(18,20)=18×20÷2=180。求幾個自然數的最小公倍數,可以先求出其中兩個數的最小公倍數,再求這個最小公倍數與第三個數的最小公倍數,依次求下去,直到最後一個為止。最後所得的那個最小公倍數,就是所求的幾個數的最小公倍數。
最大公約數
指某幾個整數共有因子中最大的一個。
例如,12和30的公約數有:1、2、3、6,其中6就是12和30的最大公約數。
兩個整數的最大公約數主要有兩種尋找方法:
* 兩數各分解質因子,然後取出同樣有的項乘起來
* 輾轉相除法(擴展版)
和最小公倍數(lcm)的關系:gcd(a, b)×lcm(a, b) = ab
兩個整數的最大公因子可用於計算兩數的最小公倍數,或分數化簡成最簡分數。
兩個整數的最大公因子和最小公倍數中存在分配律:
* gcd(a, lcm(b, c)) = lcm(gcd(a, b), gcd(a, c))
* lcm(a, gcd(b, c)) = gcd(lcm(a, b), lcm(a, c))
在坐標里,將點(0, 0)和(a, b)連起來,通過整數坐標的點的數目(除了(0, 0)一點之外)就是gcd(a, b)。
Ⅳ 請問,如何快速獲得N個數的最小公倍數
//方法
此方法把第一個數用來對其它的數求余,然後發現其中有餘數不為0的情況下對此數+1,直到對所有的數都取余數為0,則該數為最小公倍數。這個方法時第一個數應該是最大數,這樣會更快一些。意思很明確,有人加以修改,將循環中改為將前兩個數的公倍數然後繼續使用直到得出結果,效果是一樣的,效率應該會更高。
#include<stdio.h>
main()
{
int num,i,a[100],d,c;
c=1;
printf("input ji ge zheng shu\n");
scanf("%d",&num);
for(i=0;i<num;i++){
printf("input di %d ge zheng shu\n",i+1);
scanf("%d",&a[i]);
}
d=a[0];
while(c==1){
for(i=0,c=0;i<num;i++){
if(d%a[i]!=0)
{c=1;d++;}
}
}
printf("gong bei shu shi %d",d);
}
--------------------------------------------------------------------------------
2 3 7 8 10 36 的最小公倍數是 2520
把這個演算法定義為一個模板,方便重用,如下:
template <class T>
long GetMulLCM(T a[],int num)
{
int c=1;
if(num<=0)return ERROR;
for(int i=0;i<num;i++)
{
if(a[i]<0)return ERROR;
else if(a[i]==0)return 0;
}
T d=a[0];
while(c==1)
{
for(c=0,int i=0;i<num;i++)
{
if(d%a[i]!=0)
{
c=1;
d++;
}
}
}
return (long)d;
}
Ⅳ 怎樣求最大公倍數和最小公約數
最大公倍數和最小公約數,最大公倍數是最小公倍數的n被,只要不為0的正整數,最小公約數都為1,在數學上,一般求最大公約數和最小公倍數
方法:把這幾個數全部除以2,不行遞加,變成3,變成n,第一次完成後,第二次,還是從2開始,遞加,遞加到n,第二次完成後,第三次,第n次,
結論:最大公約數就是,第一次除的數乘以第二次除的數乘以第n次除的數,
最小公倍數就是最大公約數在乘以這幾個數的余數
講了這么多,不知道效果怎麼樣,能聽懂么,不懂的,可以繼續問
Ⅵ 求最大公因數和最小公倍數的幾種方法
求最大公因數和最小公倍數的方法:
一、
特殊情況:
1
、倍數關系
的兩個數,最大公因數是較小的數,最小公倍數是較大的數。(如;
6
和
12
的最大公因數是
6
,最小公倍數是
12
。)
2
、互質關系
的兩個數,最大公因數是1,最小公倍數是它們的乘積。(如,
5
和
7
的最大公因數時
1
,最小公倍數是
5
×
7=35
)
二、一般情況:
1
求最大公因數:
列舉法、單列舉法、分解質因數法、短除法、除法算式法。
①
列舉法
:如,求
18
和
27
的最大公因數
先找出兩個數的所有因數
18
的因數有:
1
、
2
、
3
、
6
、
9
、
18
27
的因數有:
1
、
3
、
9
、
27
再找出兩個數的公因數:
18
的因數有:
1
、
2
、
3
、
6
、
9
、
18
27
的因數有:
1
、
3
、
9
、
27
1
、
3
、
9
最後找出最大公因數:
9
②
單列舉法:
如,求
18
和
27
的最大公因數
先找出其中一個數的因數:
18
的因數有:
1
、
2
、
3
、
6
、
9
、
18
再找這些因數中那些又是另一個數的因數:
1
、
3
、
9
又是
27
的因數
最後找出最大公因數:
9
③短除法
:
3
18
27
3
6
9
除到商是互質數為止,最後把所有的
除數
相乘
2
3
3
×
3=9
④
除法算式法:
用這兩個數同時除以公因數,除到最大公因數為止。
18
÷
9
就是
18
和
27
的最大公因數
27
1
3
9
2
、求最小公倍數:
列舉法、單列舉法、大數翻倍法、分解質因數法或短除法
。
①
列舉法
:如,求
18
和
12
的最小公倍數
先按從小到大的順序找出這兩個數的倍數:
18
的倍數:
18
、
36
、
54
、
72
12
的倍數:
12
、
24
、
36
、
48
再找出兩個數的最小公倍數:
18
的倍數:
18
、
36
、
54
、
72
12
的倍數:
12
、
24
、
36
、
48
②
單列舉法:
如,求
18
和
12
的最小公倍數
先找出一個數的倍數:
18
的倍數有:
18
、
36
、
54
、
72
再按從小到大的順序找這些倍數中那個又是另一個數的倍數,找出最小公倍數:
36
③大數翻倍法:
如,求
18
和
12
的最小公倍數
把較大的數翻倍(
2
倍開始),每次翻倍後看結果是不是另一個數的倍數,直到找到
最小公倍數為止。
如,求
18
和
12
的最小公倍數。可以把
18
翻倍:
18
×
2=36
,
36
又是
12
的倍數,所以
36
是
18
和
12
的最小公倍數。
④
短除法
:用這兩個數同時除以一個質數(要能整除)
如,求
18
和
12
的最小公倍數,先用
18
和
12
同時除以質數
2
,再同時除以質數
3
,除到
兩個商是互質數(公因數只有
1
)為止。
2
18
12
3
除數
商
除到商是互質數為止,最後把所有的
除數和商
相乘
Ⅶ 怎麼找最小公因數
最小公倍數:
可以使用整除法.
一直除到兩個數互質,那麼所有除數的乘積即最大公約數
而最小公倍數則是所有的因子,商相乘
例如64,40
2 |64 40 除以2,
2 |32 20 商32,20
2 |16 10 繼續除以2,商16,10
|8 5 繼續除以2,商8,5
8,5互質,所以不能再除了
顯然,2*2*2 是最小公約數,
最小公倍數2*2*2*8*5=320
和換成多因子相乘是一樣的
64=2*2*2*2*2*2
40=2*2*2*5
最小公倍數2*2*2*8*5=320