Advertisement
Guest User

Untitled

a guest
May 26th, 2019
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.78 KB | None | 0 0
  1. from math import fabs
  2.  
  3. def gcd_aux(a, b):
  4.     if a == 0:
  5.         return b
  6.     elif b == 0:
  7.         return a
  8.     elif a == b:
  9.         return a
  10.     else:
  11.         if a > b:
  12.             return gcd_aux(a-b, b)
  13.         else:
  14.             return gcd_aux(a, b-a)
  15.  
  16. def generalizedGCD(num, arr):
  17.     gcd = 1
  18.     pos_copy = [abs(a) for a in arr]
  19.     if len(arr) == 1:
  20.         return pos_copy[0]
  21.     for j in range(len(arr)-1):
  22.         curr_gcd = gcd_aux(pos_copy[j], pos_copy[j+1])
  23.         if curr_gcd > gcd:
  24.             gcd = curr_gcd
  25.                
  26.     return gcd
  27.    
  28.    
  29. # for i in range (1000):
  30.     # for j in range (1000):
  31.         # gcd_aux(i, j)
  32.        
  33. print(generalizedGCD(5, [2,4,6,8,10]))
  34. print(generalizedGCD(5, [10,8,6,4,-2]))
  35. print(generalizedGCD(3, [5, 5, 10]))
  36. print(generalizedGCD(1, [10]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement