public class Rational {
	public Rational(int num, int denom) throws RationalException {
		if (denom == 0) throw new RationalException("0 denominator attempted");
		this.num = num/gcd(num,denom);
		this.denom = denom/gcd(num, denom);
	}
	public Rational(int num) throws RationalException {this(num, 1);}

	public Rational add(Rational r) throws RationalException {return new Rational(num * r.denom + r.num * denom, denom * r.denom);}
	public Rational inv() throws RationalException {return new Rational(denom, num);}

	public int getNumerator() {return num;}
	public int getDenominator() {return denom;}

	public String toString() {return num + (denom != 1 ?  "/" + denom : "");}

	private int gcd(int a, int b) {return b == 0 ? a : gcd(b, a % b);}
	private int num, denom;
}



