Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for The Greatest Common Divisor by Pertti64
def gcd(a,b): # Euclidian method
min_num = min(a,b)
max_num = max(a,b)
if max_num % min_num == 0:
return min_num
return gcd(min_num, max_num % min_num)
def greatest_common_divisor(*args:int) -> int:
args = sorted([arg for arg in args], reverse=True)
args = [gcd(arg, args[0]) for arg in args[1:]]
if len(args) == 1:
return args[0]
else:
return greatest_common_divisor(*args)
if __name__ == '__main__':
res = greatest_common_divisor(2226172404, 2652430846, 3702223254,3260139372,2021191608)
print(res)
assert gcd(180,300) == 60
print(res)
res = gcd(4294967296, 1610612736)
print(res)
assert greatest_common_divisor(180,300,450) == 30
# These "asserts" are used for self-checking and not for an auto-testing
assert greatest_common_divisor(6, 4) == 2
assert greatest_common_divisor(2, 4, 8) == 2
assert greatest_common_divisor(2, 3, 5, 7, 11) == 1
assert greatest_common_divisor(3, 9, 3, 9) == 3
print("Coding complete? Click 'Check' to earn cool rewards!")
Aug. 3, 2021
Comments: