Skip to content

Commit bb09b52

Browse files
committed
add_fraction function added
1 parent 926fd62 commit bb09b52

2 files changed

Lines changed: 35 additions & 1 deletion

File tree

fraction/add_fraction.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import sys
2+
sys.path.insert(0, '/Users/petertso/Code/Math/factor')
3+
from get_lcm import get_lcm
4+
from simplify_fraction import simplify_fraction
5+
6+
def add_fraction(*fractions):
7+
"""
8+
>>> add_fraction('1/2','2/4')
9+
1/1
10+
>>> add_fraction('3/2','1/4','1/0')
11+
divided by zero error
12+
"""
13+
14+
# this sorts out the numerators and denominators
15+
fractions = list(fractions)
16+
nums = [i.replace('/', ' ').split() for i in fractions]
17+
numerators = [int(i[0]) for i in nums]
18+
denominators = [int(i[1]) for i in nums]
19+
20+
# return error when divided by zero
21+
if 0 in denominators:
22+
return "divided by zero error"
23+
24+
# get lcm of the denominators, add them up
25+
lcm = get_lcm(denominators)
26+
27+
result_deno = 0
28+
result_num = 0
29+
for i in range(len(denominators)):
30+
num = lcm // denominators[i]
31+
result_deno = denominators[i] * num
32+
result_num += numerators[i] * num
33+
34+
# return the simplified fraction
35+
return simplify_fraction(f"{result_num}/{result_deno}")

fraction/simplify_fraction.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,4 @@ def simplify_fraction(fraction):
1919
# this will divide both numerator and denominator by their gcf value
2020
gcf = get_gcf(nums)
2121
nums = [str(i // gcf) for i in nums]
22-
print(nums)
2322
return "/".join(nums)

0 commit comments

Comments
 (0)