%I #16 Jul 06 2023 09:32:52
%S 4,16,94,585,3788,25768,182762,1340905,10135727,78580647,622188500
%N Number of n-digit base-10 deletable primes.
%C A prime p is a base-b deletable prime if when written in base b it has the property that removing some digit leaves either the empty string or another deletable prime.
%C Deleting a digit cannot leave any leading zeros in the new string. For example, deleting the 2 in 2003 to obtain 003 is not allowed.
%t b = 10; a = {4}; d = {2, 3, 5, 7};
%t For[n = 2, n <= 5, n++,
%t p = Select[Range[b^(n - 1), b^n - 1], PrimeQ[#] &];
%t ct = 0;
%t For[i = 1, i <= Length[p], i++,
%t c = IntegerDigits[p[[i]], b];
%t For[j = 1, j <= n, j++,
%t t = Delete[c, j];
%t If[t[[1]] == 0, Continue[]];
%t If[MemberQ[d, FromDigits[t, b]], AppendTo[d, p[[i]]]; ct++;
%t Break[]]]];
%t AppendTo[a, ct]];
%t a (* _Robert Price_, Nov 13 2018 *)
%o (Python)
%o from sympy import isprime
%o def ok(n, prevset):
%o if not isprime(n): return False
%o s = str(n)
%o si = (s[:i]+s[i+1:] for i in range(len(s)))
%o return any(t[0] != '0' and int(t) in prevset for t in si)
%o def afind(terms):
%o s, snxt = {2, 3, 5, 7}, set()
%o print(len(s), end=", ")
%o for n in range(2, terms+1):
%o for i in range(10**(n-1), 10**n):
%o if ok(i, s):
%o snxt.add(i)
%o s, snxt = snxt, set()
%o print(len(s), end=", ")
%o afind(6) # _Michael S. Branicky_, Jan 14 2022
%Y Cf. A080608, A080603, A096235-A096246.
%K nonn,more,base
%O 1,1
%A _Michael Kleber_, Feb 28 2003
%E a(6)-a(9) from _Ryan Propper_, Jul 19 2005
%E a(10) from _Michael S. Branicky_, Jan 14 2022
%E a(11) from _Michael S. Branicky_, Jul 06 2023
|