题解 | #最大公约数#

最大公约数

https://www.nowcoder.com/practice/cf4091ca75ca47958182dae85369c82c

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 求出a、b的最大公约数。
# @param a int整型 
# @param b int整型 
# @return int整型
#
class Solution:
    def gcd(self , a: int, b: int) -> int:
        # write code here
        # 解法一:有性能问题
        """
        if a<b:
            if b%a==0:
                return a
            else:
                sum=[]
                for i in range(1,a):
                    if b%i==0 and a%i==0:
                        sum.append(i)
                return max(sum)
        elif a>b:
            if a%b==0:
                return b
            else:
                sum=[]
                for i in range(1,b):
                    if a%i==0 and b%i==0:
                        sum.append(i)
                return max(sum)
        else:
            return a or b
            """
        # 解法二
        if a<b:
            a,b=b,a
        # 余数就是最大公约数
        while a%b!=0:
            temp=a%b
            a=b
            b=temp
        return b
        


全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务