输入 a 和 b , 请返回 a 和 b 的最大公约数。
数据范围:
进阶:空间复杂度 ,时间复杂度
3,6
3
8,12
4
a和b的范围是[1-109]
class Solution: def gcd(self , a: int, b: int) -> int: # write code here if b==0: return a else: return self.gcd(b, a%b)
class Solution: def gcd(self , a , b ): # write code here if a > b: max_ = a else: max_ = b for i in range(1,max_+1): if a % i == 0 and b % i == 0: aa = i return aa
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 求出a、b的最大公约数。 # @param a int # @param b int # @return int # class Solution: def gcd(self , a , b ): # write code here # 辗转相除法, 两数取余,若余数为0,则该除数为最大公约数 # 否则,继续将除数与余数取余 # s = a % b # if s == 0: # return b # else: # return self.gcd(b, a % b) #更相减损法, 大的数减去小的数,若差值等于小的数,则该值为最大公约数 # 否则,刚刚小的数,和差值继续上述流程 while b: if a < b: a, b = b, a a, b = b, a-b return a # 暴力法,超时 # if a >= b: # big = a # small = b # else: # big = b # small = a # for i in range(small+1, 0, -1): # if big % i == 0 and small % i == 0: # return i