python求最大公約數和最小公倍數的方法

2021-08-27 09:03:35 字數 1719 閱讀 4720

輸入整數a和b:

① a%b得餘數c

② 若c=0,則b即為兩數的最大公約數

③ 若c≠0,則a=b,b=c,再回去執行①

m=int(input('請輸入第乙個數字:'))

n=int(input('請輸入第二個數字:'))

a=mb=n

if(a>b):

t=aa=b t=b

while (a!=0):

r = b%a

b=aa=rmax=b

min=m*n//max

print ('最大公約數是:',max)

print ('最小公倍數是:',min)

輸入整數a和b:

① 若a>b,則a=a-b

② 若a

a=int(input('請輸入第乙個數字:'))

b=int(input('請輸入第二個數字:'))

n=am=b

while (a!=b):

ifa>b:

a=a-b

else:

b=b-a

max=a

min=m*n//a

print ('最大公約數是:',max)

print ('最小公倍數是:',min)

輸入整數a和b:

① i=1

② 若a,b能同時被i整除,則t=i

③ i++

④ 若 i <= a(或b),則再回去執行②

⑤ 若 i > a(或b),則t即為最大公約數,結束

改進的演算法:

① i= a(或b)

② 若a,b能同時被i整除,則i即為最大公約數,結束

③ i–,再回去執行②

a=int(input('請輸入第乙個數字:'))

b=int(input('請輸入第二個數字:'))

n=am=b

t=awhile(t>0):

if(a%t==0 and b%t==0):

break

t=t-1

max=t

min=m*n/t

print ('最大公約數是:',max)

print ('最小公倍數是:',min)

任意給定兩個正整數;判斷它們是否都是偶數。若是,則用2約簡;若不是則執行第二步。

以較大的數減較小的數,接著把所得的差與較小的數比較,並以大數減小數。繼續這個操作,直到所得的減數和差相等為止。

則第一步中約掉的若干個2與第二步中等數的乘積就是所求的最大公約數。

a=int(input('請輸入第乙個數字:'))

b=int(input('請輸入第二個數字:'))

m=an=b

if(a

a,b=b,a

divisors=

num=1

if(a%2==0

and b%2==0):

a,b=a/2,b/2

num*=2

r=a-b

while(r not

in divisors):

a=max(b,r)

b=min(b,r)

r=a-b

print ('最大公約數是:',num*r)

print ('最小公倍數是:',(m*n)//(num*r))

最小公倍數=輸入整數的乘積//最大公約數

求最大公約數

最新用了三種演算法實現了求最大公約數的演算法,用的c 寫的,最大公約數也是我們生活中常見的問題 1 窮舉法 主要 如下 if a b for i 1 i a i 演算法分析 窮舉法先將a,b兩值比較大小並且互換,再進行與各種數的整除,如果這個數能同時被a,b整除,那麼這個數就為最大公約數,這種演算法...

求最大公約數

暴力列舉法很簡單,從較小整數的一班開始,試圖找到乙個合適的整數i,檢查這個整數i是否被a和b同時整除 暴力列舉法求最大公約數 param a param b return public static int getgreatestcommondivisor v1 int a,int b for in...

求最大公約數

1.輾轉相除法 a.具體思路 兩個正整數a和b a b 它們的最大公約數等於a除以b的餘數c和b之間的最大公約數。比如10和25,25除以10商2餘5,那麼10和25的最大公約數,等同於10和5的最大公約數。有點類似動態規劃的思想,逐步減小問題規模,最後求到問題的解。int test1 int a,...