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