#### Before you keep reading...

Runestone Academy can only continue if we get support from individuals like you. As a student you are well aware of the high cost of textbooks. Our mission is to provide great books to you for free, but we ask that you consider a $10 donation, more if you can or less if $10 is a burden.

#### Before you keep reading...

Making great stuff takes time and $$. If you appreciate the book you are reading now and want to keep quality materials free for other students please consider a donation to Runestone Academy. We ask that you consider a $10 donation, but if you can give more thats great, if $10 is too much for your budget we would be happy with whatever you can afford as a show of support.

"use strict"
class Fraction {
constructor(num, den) {
this._num = num;
this._den = den;
}
toString() {
return `${this.numerator} / ${this.denominator}`;
}
get numerator() {
return this._num;
}
get denominator() {
return this._den;
}
set numerator(val) {
console.log("error cannot set the numerator");
}
gcd(m, n) {
while (m % n != 0) {
let oldm = m
let oldn = n
m = oldn
n = oldm % oldn
}
return n
}
add(other) {
let newDen = this.denominator * other.denominator
let newNum = this.numerator * other.denominator + other.numerator * this.denominator
let common = this.gcd(this.denominator, other.denominator)
return new Fraction(newNum / common, newDen / common)
}
}
let x = new Fraction(2,3);
let y = new Fraction(1,6);
console.log("x is " + x)
console.log(x.numerator)
console.log("x+y = " + x.add(y))

You have attempted

of

activities on this page