login
Number of n-digit base-8 deletable primes.
0

%I #19 Jan 16 2022 13:03:34

%S 4,14,50,238,1123,5792,30598,166056,927639,5308458,30984757

%N Number of n-digit base-8 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. "Digit" means digit in base b.

%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 = 8; 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, base=8):

%o if not isprime(n): return False

%o s = oct(n)[2:]

%o si = (s[:i]+s[i+1:] for i in range(len(s)))

%o return any(t[0] != '0' and int(t, base) 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(8**(n-1), 8**n):

%o if ok(i, s):

%o snxt.add(i)

%o s, snxt = snxt, set()

%o print(len(s), end=", ")

%o afind(7) # _Michael S. Branicky_, Jan 14 2022

%Y Cf. A080608, A080603, A096235-A096246, A322443.

%K nonn,base,more

%O 1,1

%A _Michael Kleber_, Feb 28 2003

%E a(6)-a(10) from _Ryan Propper_, Jul 19 2005

%E a(11) from _D. S. McNeil_, Dec 08 2009