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
```

Source: codewars | Difficulty: EASY

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)

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)
		previous = int(previous)
	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