rendered paste bodyint RationalNumber::simplify(){ if ((d<0) && (n<0)) { d=-1*d; n=-1*n; } if ((d<0) && (n>0)) { n=n*-1; d=d*-1; } if (n==d) { n=1; d=1; return 0; } if (d==1) { return 0; } while (iseven(n) && iseven(d)) { n=n/2; d=d/2; } int biggest; if (n!=0) { if (n>d) { biggest=n; } else if (n<d) { biggest=d; } int i=0; for (i=1;i<biggest;i++) { int z=i+1; if (div_n(n, z) && div_n(d, z)) { n=n/z; d=d/z; // std::cout << "Calling simple\n"; // std::cout << "Simplifying: " << n << "/" << d << "\n"; simplify(); } } } else { n=0; d=1; }}