add logo and update gcd and make lcm
This commit is contained in:
@ -1,3 +1,4 @@
|
|||||||
|

|
||||||
# 30-seconds-of-code-python
|
# 30-seconds-of-code-python
|
||||||
Python implementation of 30-seconds-of-code.
|
Python implementation of 30-seconds-of-code.
|
||||||
|
|
||||||
|
|||||||
16
scripts/pretty.py
Normal file
16
scripts/pretty.py
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
from yapf.yapflib.yapf_api import FormatCode
|
||||||
|
import re
|
||||||
|
import pprint
|
||||||
|
import os
|
||||||
|
files = os.listdir('../snippets')
|
||||||
|
codeRe = "```\s*python([\s\S]*?)```"
|
||||||
|
for file in files:
|
||||||
|
someFile = open("../snippets/" + file)
|
||||||
|
fileData = someFile.read()
|
||||||
|
someFile.close()
|
||||||
|
originalCode = re.search(codeRe,fileData).group(0)
|
||||||
|
formatedCode = FormatCode(re.split(codeRe,fileData)[1])
|
||||||
|
fileToSave = fileData.replace(originalCode,('```python \n'+formatedCode[0]+'\n```\n'))
|
||||||
|
someFile = open("../snippets/"+file,'w')
|
||||||
|
someFile.write(fileToSave)
|
||||||
|
someFile.close()
|
||||||
@ -6,20 +6,34 @@ The `helperGcdfunction` uses recursion. Base case is when `y` equals `0`. In thi
|
|||||||
|
|
||||||
Uses the reduce function from the inbuild module `functools`. Also defines a method `spread` for javascript like spreading of arrays.
|
Uses the reduce function from the inbuild module `functools`. Also defines a method `spread` for javascript like spreading of arrays.
|
||||||
|
|
||||||
``` python
|
```python
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
|
|
||||||
|
|
||||||
def spread(arg):
|
def spread(arg):
|
||||||
ret = []
|
ret = []
|
||||||
for i in arg:
|
for i in arg:
|
||||||
if isinstance(i,list):
|
if isinstance(i, list):
|
||||||
ret.extend(i)
|
ret.extend(i)
|
||||||
else:
|
else:
|
||||||
ret.append(i)
|
ret.append(i)
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
def gcd(*args):
|
def gcd(*args):
|
||||||
numbers = []
|
numbers = []
|
||||||
numbers.extend(spread(list(args)))
|
numbers.extend(spread(list(args)))
|
||||||
def helperGcd(x,y):
|
|
||||||
return x if not y else gcd(y,x%y)
|
def _gcd(x, y):
|
||||||
return reduce((lambda x,y : helperGcd(x,y)),numbers)
|
return x if not y else gcd(y, x % y)
|
||||||
|
|
||||||
|
return reduce((lambda x, y: _gcd(x, y)), numbers)
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
``` python
|
||||||
|
gcd(8,36); # 4
|
||||||
```
|
```
|
||||||
40
snippets/lcm.md
Normal file
40
snippets/lcm.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
### lcm
|
||||||
|
|
||||||
|
Returns the least common multiple of two or more numbers.
|
||||||
|
|
||||||
|
Use the `greatest common divisor (GCD)` formula and the fact that `lcm(x,y) = x * y / gcd(x,y)` to determine the least common multiple. The GCD formula uses recursion.
|
||||||
|
|
||||||
|
```python
|
||||||
|
from functools import reduce
|
||||||
|
|
||||||
|
|
||||||
|
def spread(arg):
|
||||||
|
ret = []
|
||||||
|
for i in arg:
|
||||||
|
if isinstance(i, list):
|
||||||
|
ret.extend(i)
|
||||||
|
else:
|
||||||
|
ret.append(i)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
def lcm(*args):
|
||||||
|
numbers = []
|
||||||
|
numbers.extend(spread(list(args)))
|
||||||
|
|
||||||
|
def _gcd(x, y):
|
||||||
|
return x if not y else gcd(y, x % y)
|
||||||
|
|
||||||
|
def _lcm(x, y):
|
||||||
|
return x * y / _gcd(x, y)
|
||||||
|
|
||||||
|
return reduce((lambda x, y: _lcm(x, y)), numbers)
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
``` python
|
||||||
|
lcm(12, 7); # 84
|
||||||
|
lcm([1, 3, 4], 5); # 60
|
||||||
|
```
|
||||||
1
snippetsgcd.md
Normal file
1
snippetsgcd.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
fileToSave
|
||||||
BIN
stopwatch.png
Normal file
BIN
stopwatch.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 98 KiB |
Reference in New Issue
Block a user