public Rational getGcd() { assert (!mSummands.isEmpty()); Iterator<Rational> it = mSummands.values().iterator(); Rational gcd = it.next().abs(); while (it.hasNext()) { gcd = gcd.gcd(it.next().abs()); } return gcd; }