ropering / Study

0 stars 0 forks source link

[Python] gcd (최대 공약수) #23

Open ropering opened 2 years ago

ropering commented 2 years ago
from functools import reduce

def spread(arg):
    ret = []
    for i in arg:
        if isinstance(i, list):
            ret.extend(i)
        else:
            ret.append(i)
    return ret

def gcd(*args):
    numbers = []
    numbers.extend(spread(list(args)))

    def _gcd(x, y):
        return x if not y gcd(y, x % y)

    return reduce((lambda x, y: _gcd(x, y)), numbers)

gcd(8, 36)  # 4