Home > Back-end >  How do I simplify fractions?
How do I simplify fractions?

Time:01-26

I've been working for awhile on a huge mathematical multitool and I'm making a fraction simplifier in it (all with alerts). I tried the following, what did I do wrong?

if (confirm("Confirm to select a program\nCurrent program: Fraction Simplifier") == true) {
    var numerator = prompt("Enter the numerator");
    var denominator = prompt("Enter the denominator");
    var nFrac = numerator;
    var dFrac = denominator;
    simpFrac();
    alert(numerator   "/"   denominator   " simplified is "   nFrac   "/"   dFrac);
};
function simpFrac() {
    for (var i = 1; i < dFrac; i  ) {
        fracV = fracV   1;
        if (Number.isInteger(nFrac / fracV) && Number.isInteger(dFrac / fracV)) {
          nFrac = nFrac / fracV;
          dFrac = dFrac / fracV;  
        };
    };
};

CodePudding user response:

Divide the numerator and the denominator by the GCD.

const GCD = (a, b) => b ? GCD(b, a % b) : a;
let numerator = 15, denominator = 18;
let div = GCD(numerator, denominator);
console.log(`${numerator}/${denominator} simplifies to ${numerator/div}/${denominator/div}`);

CodePudding user response:

someone answered and deleted their answer, I implemented their method. It worked. Changed to

if (confirm("Confirm to select a program\nCurrent program: Fraction Simplifier") == true) {
    if (confirm("Confirm to select a program\nCurrent program: Fraction Simplifier") == true) {
    var numerator = prompt("Enter the numerator");
    var denominator = prompt("Enter the denominator");
    var GCD = (a, b) => b ? GCD(b, a % b) : a;
    let div = GCD(numerator, denominator);
    alert(numerator   "/"   denominator   " simplifies to "   numerator / div   "/"   denominator / div   ".");
  • Related