2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
Task:
Write
```
smallest(n)
```
that will find the smallest positive number that is evenly divisible by all of the numbers from 1 to n (n <= 40). 
E.g
```python
smallest(5) == 60 # 1 to 5 can all divide evenly into 60
smallest(10) == 2520
```

Difficulty: introductory

Starter code:

def smallest(n):
	

Solutions:
def smallest(n):
    x, y, m = 1, 1, 1
    while m <= n:
        if x % m == 0:
            m += 1
            y = int(x)
        else:
            x += y
    return x


from functools import reduce
from math import gcd
lcm = lambda x,y: x*y//gcd(x, y)

# Note: there is a lcm function in numpy 1.17 but codewars uses 1.14
def smallest(n):
    return reduce(lcm, range(1, n+1))

from fractions import gcd

lcm = lambda a, b: a * b // gcd(a, b)

def smallest(n):
    num = 1
    for i in range(2, n + 1):
        num = lcm(num, i)
    return num

from functools import reduce
from math import gcd


def smallest(n):
    return reduce(lambda a, b: a * b // gcd(a, b), range(1, n+1))

def gcd(a, b):
  if b == 0: return a
  return gcd(b, a%b)


def smallest(n):
  p = 1
  
  for i in range(2, n+1):
    p *= (i / gcd(p, i))
  
  return p

def smallest(n):
    previous = 1
    for i in range(1,n+1):
        previous = mmc(previous,i)                         #mmc stands for least common multiple
        previous = int(previous)                           #the mmc function returns float
    return previous

def mmc(num1, num2):
    a = num1
    b = num2

    resto = None
    while resto is not 0:
        resto = a % b
        a  = b
        b  = resto

    return (num1 * num2) / a