Solution: Find the Egyptian Fraction
This review provides a detailed analysis of how to convert a fraction into a series of Egyptian fractions.
We'll cover the following...
Solution
Press + to interact
class Fraction{public static void printEgyptianFraction(int numerator, int denominator){//if either numerator or denominator is zeroif (denominator == 0 || numerator == 0){return;}//numerator divides denominator -> fraction in 1/n formif (denominator % numerator == 0) {System.out.print("1/" + denominator / numerator);return;}//denominator can divide numerator -> number not a fractionif (numerator % denominator == 0) {System.out.println(numerator / denominator);return;}//if numerator greater than denominatorif (numerator > denominator) {System.out.println(numerator / denominator + " , ");printEgyptianFraction(numerator % denominator, denominator);return;}//denominator greater than numerator hereint n = denominator / numerator + 1;System.out.print("1/" + n + " , ");//call function recursively for remaining partprintEgyptianFraction(numerator * n - denominator, denominator * n);}}class Main{public static void main(String[] args){//Example 1int numerator = 6, denominator = 14;System.out.print("Egyptian Fraction Representation of " + numerator + "/" + denominator + " is\n ");Fraction.printEgyptianFraction(numerator, denominator);System.out.println();//Example 2numerator = 2;denominator = 3;System.out.print("Egyptian Fraction Representation of " + numerator + "/" + denominator + " is\n ");Fraction.printEgyptianFraction(numerator, denominator);}}
Explanation
We can generate Egyptian fractions using the greedy algorithm. For a given number of the form n/d,
where d > n
, first find the greatest possible unit fraction, ...