A209252 Number of primes (excluding n) that may be generated by replacing any decimal digit of n with a digit from 0 to 9.
4, 4, 3, 3, 4, 3, 4, 3, 4, 4, 4, 7, 5, 9, 4, 5, 4, 8, 4, 7, 2, 7, 3, 7, 2, 3, 2, 8, 2, 5, 2, 5, 3, 9, 2, 3, 2, 6, 2, 7, 3, 6, 4, 8, 3, 4, 3, 7, 3, 8, 2, 7, 3, 7, 2, 3, 2, 8, 2, 5, 2, 5, 3, 9, 2, 3, 2, 6, 2, 7, 3, 6, 4, 8, 3, 4, 3, 9, 3, 6, 2, 7, 3, 7, 2, 3, 2, 8, 2, 5, 1, 6, 2, 8, 1, 2, 1, 5, 1, 6, 4, 10, 5, 9, 4
Offset: 0
Examples
a(0) = 4 because by replacing the digit 0, we obtain the 4 primes 2, 3, 5 and 7; a(11) = 7 because by replacing the 1st digit of *1, we obtain the primes 31, 41, 61, 71, and by replacing the 2nd digit of 1* we obtain the primes 13, 17, 19, hence a(11) = 7. a(13) = 8 because 03, 11, 17, 19, 23, 43, 53, 73 and 83 are all primes. a(204) = 0 because it is impossible to find a prime number if we replace the digits 2, 0 or 4.
Links
- Michel Lagneau, Table of n, a(n) for n = 0..10000
- Terence Tao, A remark on primality testing and decimal expansions, Journal of the Australian Mathematical Society 91:3 (2011), pp. 405-413.
Programs
-
Maple
A209252 := proc(n) local a,dgs,d,r,pd,p ; a := 0 ; dgs := convert(n,base,10) ; for d from 1 to nops(dgs) do for r from 0 to 9 do pd := subsop(d=r,dgs) ; p := add(op(i,pd)*10^(i-1),i=1..nops(pd)) ; if isprime(p) and p <> n then a := a+1 ; end if; end do: end do: a ; end proc: # R. J. Mathar, Jan 18 2013
-
Mathematica
f[n_] := Block[{c = k = 0, d, p, lmt = 1 + Floor@ Log10@ n}, While[k < lmt, d = 0; While[d < 10, p = Quotient[n, 10^(k+1)]*10^(k+1) + d*10^k + Mod[n, 10^k]; If[p != n && PrimeQ@ p, c++]; d++]; k++]; c]; f[0] = 4; Array[f, 105, 0] (* Robert G. Wilson v, Dec 19 2015 *)
-
Python
from sympy import isprime def A209252(n): return len([1 for i in range(len(str(n))) for d in '0123456789' if d != str(n)[i] and isprime(int(str(n)[:i]+d+str(n)[i+1:]))]) # Chai Wah Wu, Sep 19 2016
-
Python
from gmpy2 import digits, is_prime def a(n): s, c = list(map(int, digits(n))), 0 if len(s) > 1 and s[-1] not in {1, 3, 7, 9}: z = int(is_prime(s[-1])) if all(c == 0 for c in s[1:-1]) else 0 return z + sum(1 for e in {1, 3, 7, 9} if is_prime(n + e - s[-1])) for i in range(len(s)): b = 10**(len(s)-1-i) for j in range(10): if j != s[i]: t = n + (j-s[i])*b if is_prime(t): c += 1 return c print([a(n) for n in range(100)]) # Michael S. Branicky, Apr 22 2025
Comments