求3個數的最大公約數的演算法:
1、輾轉相除法:在3個數中任意選2個數,對於給定的兩個數,用較大的數除以較小的數。若餘數不為零,則將餘數和較小的數構成新的一對數,繼續上面的除法,直到大數被小數除盡,則這時較小的數就是原來兩個數的最大公約數。
2、更相減損術:在3個數中任意選2個數,對於給定的兩個數,用較大的數減去較小的數,然後將差和較小的數構成新的一對數,再用較大的數減去較小的數,反覆執行此步驟直到差數和較小的數相等,此時相等的兩數便為原來兩個數的最大公約數。
求3個數的最大公約數的演算法:
1、輾轉相除法:在3個數中任意選2個數,對於給定的兩個數,用較大的數除以較小的數。若餘數不為零,則將餘數和較小的數構成新的一對數,繼續上面的除法,直到大數被小數除盡,則這時較小的數就是原來兩個數的最大公約數。
2、更相減損術:在3個數中任意選2個數,對於給定的兩個數,用較大的數減去較小的數,然後將差和較小的數構成新的一對數,再用較大的數減去較小的數,反覆執行此步驟直到差數和較小的數相等,此時相等的兩數便為原來兩個數的最大公約數。
求最大公約數有多種方法,常見的有質因數分解法、短除法、輾轉相除法、更相減損法。如果有一個自然數a能被自然數b整除,則稱a為b的倍數,b為a的約數。幾個自然數公有的約數,叫做這幾個自然數的公約數。公約數中最大的一個公約數,稱為這幾個自然數的最大公約數。
輾轉相除法使用到的原理很聰明也很簡單,假設用f(x,y)表示x,y的最大公約數,取k=x/y,b=x%y,則x=ky+b,如果一個數能夠同時整除x和y,則必能同時整除b和y;而能夠同時整除b和y的數也必能同時整除x和y,即x和y的公約數與b和y的公約數是相同的,其最大公約數也是相同的,則有f(x,y)=f(y,x%y)(y>0),如此便可把原問題轉化為求兩個更小數的最大公約數,直到其中一個數為0,剩下的另外一個數就是兩者最大的公約數。
例如,12和30的公約數有:1、2、3、6,其中6就是12和30的最大公約數。
分三種情況:
1、當這三個數成倍數時,它們的最大公約數就是其中最小的那個數;
2、當這三個數是互質數時,它們的最大公因數就是1;
3、既不成倍數又不是互質數時,用短除法來求最簡單。用3個數公有的因數去除這3個數,再把所有的公因數乘起來。