python gcd and lcm - stachulemko/doc GitHub Wiki
# NWW (najmniejsza wspolna wielokrotnosc) dla zbioru liczb
# www.algorytm.org
from functools import reduce
#oblicza NWD (najwiekszy wspolny dzielnik) dla dwoch liczb
def gcd(a, b):
while b != 0:
b, a = a % b, b
return a
#oblicza NWW (najmniejsza wspolna wielokrotnosc) dla dwoch liczb
def lcm(a, b):
"""
lcm(3, 8) => 24
"""
return abs( a * b / gcd(a, b) )
#oblicza NWW (najmniejsza wspolna wielokrotnosc) dla listy liczb
def lcm_list(l):
"""
lcm_list([3, 4, 5, 6]) => 60
"""
return reduce(lcm, l, 1)
def nwd(a, b):
while b != 0:
pom = b; b = a % b; a = pom
return a
def nww(a, b):
return a * b // nwd(a, b)
m = nww(nww(m1, m2), m3)