assert(gcd(9,45)==9) assert(gcd(9,6)==3) assert(gcd(3,1234)==1) assert(gcd(1,0)==1) assert(gcd(0,0)==0) print('gcd passed!') print('checking summarize_periodic...',end='') assert(summarize_periodic(100, '1212121212', 10)=='\\overline{12}') assert(summarize_periodic(99, '1212121212', 10)=='\\overline{12}') assert(summarize_periodic(101, '1212121212', 10)=='\\overline{12}') assert(summarize_periodic(100, '45612312312', 10)=='456\\overline{123}') print('summarize_periodic passed!') print('checking to_base...',end='') assert(Rational(8,1).to_base(2)=='1000') assert(Rational(1,3).to_base(2)=='0.\\overline{01}') assert(Rational(25,1).to_base(2)=='11001') assert(Rational(25,1).to_base(8)=='31') assert(Rational(25,1).to_base(16)=='19') assert(Rational(7,15).to_base(2)=='0.\\overline{0111}') assert(Rational(21,22).to_base(2)=='0.1\\overline{1110100010}') print('to_base passed!') print('checking from_base...',end='') s = Rational(0,1) assert(s.from_base('1000',2)==Rational(8,1)) assert(s.from_base('0.23',5)==Rational(13,25)) assert(s.from_base('ff',16)==Rational(255,1)) print('from_base passed!')
def solve(strings, start_base, end_bases): r = Rational(0,1) for s in strings: r.from_base(s,start_base) print(' = '.join('%s_{%d}' % (r.to_base(b),b) for b in end_bases))