Deleting any digit yields a prime... is there a name for this? My son likes his grilled cheese sandwich cut into various numbers, the number depends on his mood.  His mother won't indulge his requests, but I often will.  Here is the day he wanted 100:



But today he wanted the prime 719, which I obliged.  When deciding which digit to eat first, he went through the choices, trying to make a composite with the digits left behind.  But he quickly realized that eating any digit would leave a prime: 71, 79, 19 are all prime.  Pleased with his discovery of this prime 719, he tried to find a larger one, but couldn't.
My questions:


*

*Do these primes have a name?

*Can you think of any more of them (clearly 23 is the smallest)?

*Are there an infinite number of them?

*Is there likely to be a way to find them short of using a computer?


Here's my C code for generating these numbers.  It should be very fast since it uses a sieve, but also consumes a lot of memory for the sieve[] array (we could compress by a factor of 8 by using a bitfield).
// find primes such that deleting any digit remains a prime
//
#include <stdio.h>

#define MAX 1000000000LL
char sieve[MAX];

int ddel(long long i);
int main(void) {
  long long i, j;

  sieve[0] = sieve[1] = 0;  // don't count 0 and 1 as primes
  for (i=2; i < MAX; i++) sieve[i] = 1;

  // sieve; each new prime will be tested
  for (i=2; i < MAX; i++) {
    if (sieve[i] == 0) continue;
    for (j=i+i; j < MAX; j += i) sieve[j] = 0;

    if (i > 10) {
      if (ddel(i))
        printf("%d\n", i);
    }
  }
}

int ddel(long long i) {
  long long j;
  long long t = 1;

  while (t < i) {
    // delete the log_10(t) digit
    j = i/10/t * t + i%t;
    if (sieve[j] == 0) return 0;
    t *= 10;
  }
  return 1;
}

