cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A096245 Number of n-digit base-12 deletable primes.

Original entry on oeis.org

5, 25, 186, 1398, 11500, 99074, 893062, 8352961, 80564801
Offset: 1

Views

Author

Michael Kleber, Feb 28 2003

Keywords

Comments

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.
Deleting a digit cannot leave any leading 0's in the new string. For example, deleting the 2 in 2003 to obtain 003 is not allowed.

Crossrefs

Programs

  • Mathematica
    b = 12; a = {5}; d = {2, 3, 5, 7, 11};
    For[n = 2, n <= 5, n++,
      p = Select[Range[b^(n - 1), b^n - 1], PrimeQ[#] &];
      ct = 0;
      For[i = 1, i <= Length[p], i++,
       c = IntegerDigits[p[[i]], b];
       For[j = 1, j <= n, j++,
        t = Delete[c, j];
        If[t[[1]] == 0, Continue[]];
        If[MemberQ[d, FromDigits[t, b]], AppendTo[d, p[[i]]]; ct++;
         Break[]]]];
      AppendTo[a, ct]];
    a (* Robert Price, Nov 13 2018 *)
  • Python
    from sympy import isprime
    from sympy.ntheory.digits import digits
    def strmap(d):
        return str(d) if d < 10 else "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[d-10]
    def ok(n, prevset, base=12): # works for bases 2-36
        if not isprime(n): return False
        s = "".join(strmap(d) for d in digits(n, base)[1:])
        si = (s[:i]+s[i+1:] for i in range(len(s)))
        return any(t[0] != '0' and int(t, base) in prevset for t in si)
    def afind(terms, base=12): # works for bases 3-36
        s = set([p for p in range(1, base) if isprime(p)])
        alst, snxt = [len(s)], set()
        print(len(s), end=", ")
        for n in range(2, terms+1):
            for i in range(base**(n-1), base**n):
                if ok(i, s):
                    snxt.add(i)
            s, snxt = snxt, set()
            print(len(s), end=", ")
    afind(6) # Michael S. Branicky, Jan 17 2022

Extensions

a(6)-a(8) from Ryan Propper, Jul 19 2005
Edited by Charles R Greathouse IV, Aug 03 2010
a(9) from Michael S. Branicky, Jan 17 2022