# Python program for OEIS A052056 # Michael S. Branicky, Dec 31 2021 # A052056 Numbers k such that k! starts with its largest prime substring. data = [2, 4, 6, 7, 9, 10, 15, 16, 20, 21, 23, 25, 30, 35, 43, 78, 102, 105, 132, 138, 151, 189, 202, 215, 219, 233, 241, 264, 320, 334, 349, 352, 367, 386, 433, 458, 520] from sympy import isprime def starts_with_lps(n): if isprime(n): return True s, pstartlen = str(n), 0 for i in range(len(s)-1, 0, -1): intsi = int(s[:i]) if isprime(intsi): pstart, pstartlen = intsi, i break if pstartlen == 0: return False for j in range(1, len(s)+1-pstartlen): for k in range(j+pstartlen, len(s)+1): sjk = s[j:k] intsjk = int(sjk) if intsjk <= pstart: continue if isprime(intsjk): return False return True alst = [] k = 1 fk = 1 n = 0 while True: if starts_with_lps(fk): n += 1 print("FOUND a(", n, ") =", k) alst.append(k) print(" ", alst) print(" ", data) k += 1 fk *= k if k%100 == 0: print("...", k, alst[len(data):])