Program for Addition of Two Fractions in Python
Addition of Two Fractions
The addition of two fractions involves finding a common denominator and then adding the numerators. The result is then simplified if necessary.
We will explore three methods to perform fraction addition using Python programming.
Method 1: Using Basic Arithmetic
This method directly computes the sum using the Least Common Denominator (LCD).
def gcd(a, b):
while b:
a, b = b, a % b
return a
def add_fractions(num1, den1, num2, den2):
common_den = den1 * den2
common_num = (num1 * den2) + (num2 * den1)
divisor = gcd(common_num, common_den)
print(f"Sum: {common_num // divisor}/{common_den // divisor}")
num1, den1 = map(int, input("Enter first fraction (numerator denominator): ").split())
num2, den2 = map(int, input("Enter second fraction (numerator denominator): ").split())
add_fractions(num1, den1, num2, den2)
Output: Sum: 5/6
Method 2: Using a Class
Using a class provides better organization for fraction operations.
class Fraction:
def __init__(self, numerator, denominator):
self.numerator = numerator
self.denominator = denominator
def gcd(a, b):
return a if b == 0 else gcd(b, a % b)
def add_fractions(f1, f2):
common_num = (f1.numerator * f2.denominator) + (f2.numerator * f1.denominator)
common_den = f1.denominator * f2.denominator
divisor = gcd(common_num, common_den)
return Fraction(common_num // divisor, common_den // divisor)
num1, den1 = map(int, input("Enter first fraction (numerator denominator): ").split())
f1 = Fraction(num1, den1)
num2, den2 = map(int, input("Enter second fraction (numerator denominator): ").split())
f2 = Fraction(num2, den2)
result = add_fractions(f1, f2)
print(f"Sum: {result.numerator}/{result.denominator}")
Output: Sum: 5/6
Method 3: Using Recursion
This recursive method finds the sum by simplifying at each step.
def gcd(a, b):
return a if b == 0 else gcd(b, a % b)
def add_fractions_recursive(num1, den1, num2, den2):
if den1 == den2:
print(f"Sum: {num1 + num2}/{den1}")
return
common_den = den1 * den2
common_num = (num1 * den2) + (num2 * den1)
divisor = gcd(common_num, common_den)
add_fractions_recursive(common_num // divisor, common_den // divisor, 0, 1)
num1, den1 = map(int, input("Enter first fraction (numerator denominator): ").split())
num2, den2 = map(int, input("Enter second fraction (numerator denominator): ").split())
add_fractions_recursive(num1, den1, num2, den2)
Output: Sum: 5/6