Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import math
- vlist = []
- def getGCD (*numbe):
- global vlist
- L1 = []
- vlist = []
- ii = 1
- numb = sorted(numbe)
- ki = 0
- for i in numb:
- if i < 0:
- i = abs(i)
- numb[ki] = i
- ki+= 1
- L1 = getChildren(numb[0])
- L2 = []
- f = len(numb)-1
- while f > 0:
- for p in L1:
- if numb[ii] % p == 0:
- L2.append(p)
- numb[ii] = numb[ii] / p
- L1 = L2
- L2 = []
- ii+= 1
- f-= 1
- gcd = 1
- for i in L1:
- gcd = gcd * i
- del(L1,L2,i,ii,p,f)
- return gcd
- def getChildren(num):
- if num<0:
- raise TypeError('no non-positive!')
- global vlist
- if not vlist == []:
- vlist = []
- func(num)
- return vlist
- def func(num):
- Prime = True
- for i in range(2, int(math.sqrt(1 + num)) + 1):
- if num % i == 0 and i != num :
- vlist.append(i)
- Prime = False
- func(num / i)
- break
- if Prime:
- vlist.append(num)
- return vlist
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement