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.

A350443 Rigidly-deletable primes: primes such that removing some digit, one at a time in unique order gives a prime at each step, until the empty string is reached.

Original entry on oeis.org

2, 3, 5, 7, 13, 17, 29, 31, 43, 47, 59, 67, 71, 79, 83, 97, 127, 157, 163, 269, 271, 359, 383, 439, 457, 463, 487, 509, 547, 569, 571, 643, 659, 683, 701, 709, 751, 769, 863, 929, 983, 1217, 1427, 1487, 2069, 2371, 2609, 2671, 2689, 2713, 2731, 2791, 2969, 3259
Offset: 1

Views

Author

Arkadiusz Wesolowski, Dec 31 2021

Keywords

Comments

Rigidly-deletable primes are deletable primes where the choice of digit to delete is unique (all other choices give nonprime numbers).
Leading zeros are allowed in the number that appears after the digit is deleted.

Examples

			The prime 103 is not a member since removing a digit will either give 03 which has a leading zero (3 is a prime number), or give one of the numbers 13 which is prime, or 10 which is composite.
The prime 509 is a member since removing a digit will either give 09 which has a leading zero (9 is a composite number), or give one of the numbers 59 which is prime, or 50 which is composite. Then removing a digit from 59 will either give 9, or 5 which is prime.
		

Crossrefs

Programs

  • PARI
    for(k=2, 3259, if(isprime(k), a=k; r=#digits(a); q=r; for(y=1, r, L=List([]); for(d=1, q, T=List(Vec(Str(a))); listpop(T, d); listput(L, concat(T))); t=0; for(b=1, q, w=L[b]; if(isprime(eval(w)), t++; u=w); if(t==2, break)); if(t==1, q=#Vec(u); a=u, break); if(y==r, print1(k, ", ")))));
    
  • Python
    from sympy import isprime
    def ok(n):
        if not isprime(n): return False
        if n < 10: return True
        s, c, d = str(n), 0, None
        for i in range(len(s)):
            di = int(s[:i]+s[i+1:])
            if isprime(di):
                c += 1
                if c > 1:
                    return False
                d = di
        return d and ok(d) and len(str(d)) == len(s) - 1
    print([k for k in range(3260) if ok(k)]) # Michael S. Branicky, Dec 31 2021