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)