【基础入门题043】最大公约数

x33g5p2x  于2021-12-09 转载在 其他  
字(1.1k)|赞(0)|评价(0)|浏览(144)

【基础入门题】2021.12.09

给定两个正整数数,求这两个数的最大公约数。

编程语言:包括但不限于Python
题目来源:派森特给站每日刷题频道 

————————————————

方法一:for循环

def GCD(m, n):
    gcd = 1 # 此行可以省略
    for i in range(1,min(m, n)+1):
        if m%i==0 and n%i==0:
            gcd = i
    return gcd
        
print(GCD(81,3))

print(GCD(81,15))

print(GCD(81,54))

方法二:while循环

def GCD(m, n):
    while m!=n:
        if m>n: m -= n
        else: n -= m
    return m
        
print(GCD(81,3))

print(GCD(81,15))

print(GCD(81,54))

方法三:递归法

def GCD(m, n):
    if n==0: return m
    return GCD(n, m%n)
        
print(GCD(81,3))

print(GCD(81,15))

print(GCD(81,54))

方法四:辗转相除法

def GCD(m, n):
    while n!=0:
        m, n = n, m%n
    return m
        
print(GCD(81,3))

print(GCD(81,15))

print(GCD(81,54))

方法五:递减法

def GCD(m, n):
    gcd = min(m, n)
    while m%gcd or n%gcd:
        gcd -= 1
    return gcd
        
print(GCD(81,3))

print(GCD(81,15))

print(GCD(81,54))

方法六:库函数math.gcd

from math import gcd
        
print(gcd(81,3))

print(gcd(81,15))

print(gcd(81,54))

或者:直接用 import('math').gcd

__import__('math').gcd(81,3)
__import__('math').gcd(81,15)
__import__('math').gcd(81,54)

方法七:约分法,库函数fractions.Fraction()

def GCD(m, n):
    from fractions import Fraction
    return m//Fraction(m, n).numerator #取分子
    #return n//Fraction(m, n).denominator #或取分母
        
print(GCD(81,3))

print(GCD(81,15))

print(GCD(81,54))

以上方法的答案均为 3,3,27。

欢迎加入CSDN社区!

https://bbs.csdn.net/forums/PythonTogether?typeId=18060

相关文章

微信公众号

最新文章

更多