求 2个数的最大公约数 def divisor(m,n): a=max(m,n) b=min(m,n) if a%b==0: return b else: for i in range(b//2,0,-1): if m%i==0 and n%i==0: return i print('100,30最大公约数:',divisor(100,30)) print('100,50最大公约数:',divisor(100,50)) print('100,17最大公约数:',divisor(100,17)) print('319,377最大公约数:',divisor(319,377)) #辗转相除法: def divisor(m,n): while 1: a=max(m,n) b=min(m,n) if a%b==0: return b else: c=a%b m=c n=b print('*'*20) print('100,30最大公约数:',divisor(100,30)) print('100,50最大公约数:',divisor(100,50)) print('100,17最大公约数:',divisor(100,17)) print('319,377最大公约数:',divisor(319,377))