OFFSET
1,1
COMMENTS
The term "prime-proof" for this property is found on projecteuler.net (cf. link). The nontrivial subsequence A143641 is that of odd elements not ending in 5 (i.e. not ending in 0,2,4,5,6 or 8); it starts 212159,595631,872897,... - M. F. Hasler, Sep 04 2008
Also indices n such that A209252(n) is zero. - Ray G. Opao, Aug 01 2020
LINKS
Paolo P. Lava, Table of n, a(n) for n = 1..10000
G. L. Honaker, Jr. and Chris Caldwell, Prime Curios! 200
Project Euler, Problem 200. Find the 200th prime-proof sqube containing the contiguous sub-string "200" (2008)
EXAMPLE
a(1) = 200 is in the sequence because changing any digit of 200 (for example 300, 220, or 209) is still composite. The integer 100 is not in the sequence because it can be changed to 107 which is prime.
MATHEMATICA
unprimeableQ[n_] := Block[{d = IntegerDigits@ n, t = {}}, Do[AppendTo[t, FromDigits@ ReplacePart[d, i -> #] & /@ DeleteCases[Range[0, 9], x_ /; x == d[[i]]]], {i, Length@ d}]; ! AnyTrue[Flatten@ t, PrimeQ]]; Select[Range@ 1200, unprimeableQ] (* Michael De Vlieger, Nov 09 2015, Version 10 *)
PROG
(PARI) /* return 1 if no digit can be changed to make it prime; if d=1, print a prime if n is not prime-proof */ isA118118(n, d=0)={ forstep( k=n\10*10+1, n\10*10+9, 2, isprime(k) || next; d && print("prime:", k); return); if( n%2==0 || n%5==0, /* even or ending in 5: no other digit can make it prime, except for the case where the last digit is prime and the first digit is the only other nonzero one */ return( !isprime(n%10) || 9 < n % 10^( log(n+.5)\log(10) ) || (d && print("prime:", n%10)) )); o=10; until( n < o*=10, k=n-o*(n\o%10); for( i=0, 9, isprime(k) && return(d && print("prime:", k)); k+=o)); 1} \\ M. F. Hasler, Sep 04 2008
(Magma) IsA118118:=function(n); D:=Intseq(n); return forall{ <k, j>: k in [1..#D], j in [0..9] | j eq D[k] or not IsPrime(Seqint(S)) where S:=Insert(D, k, k, [j]) }; end function; [ n: n in [1..1200] | IsA118118(n) ]; // Klaus Brockhaus, Feb 28 2011
(Python)
from sympy import isprime
def selfplusneighs(n):
s = str(n); d = "0123456789"; L = len(s)
yield from (int(s[:i]+c+s[i+1:]) for c in d for i in range(L))
def ok(n): return all(not isprime(k) for k in selfplusneighs(n))
print([k for k in range(1131) if ok(k)]) # Michael S. Branicky, Jun 19 2022
CROSSREFS
KEYWORD
easy,nonn,base
AUTHOR
Adam Panagos (adam.panagos(AT)gmail.com), May 12 2006
EXTENSIONS
Edited by Charles R Greathouse IV, Aug 05 2010
STATUS
approved