%I #16 May 10 2022 02:11:02
%S 3,3,3,3,7,8,7,7,6,5,5,5,6,7,6,6,5,5,5,6,7,6,6,5,4,10,8,11,11,6,8,9,9,
%T 10,6,7,11,9,9,8,7,6,10,9,11,9,7,8,7,6,7,7,7,7,8,9,5,7,7,7,9,6,8,6,7,
%U 8,5,8,9,6,7,6,8,7,6,8,4,8,8,10,8,6,9,6,11,5,8,7,8,8,7,7,5,8,8,5,7,5,6,6
%N Let p = prime(n); a(n) = number of primes q with same number of digits as p that can be obtained from p by changing one digit.
%H Reinhard Zumkeller, <a href="/A125002/b125002.txt">Table of n, a(n) for n = 1..10000</a>
%e The 5th prime 11 leads to 7 other primes: 13,17,19,31,41,61,71, hence a(5)=7.
%e a(6)=8, p=13, q={11,17,19,23,43,53,73,83}
%e a(7)=7, p=17, q={11,13,19,37,47,67,97}
%e a(8)=7, p=19, q={11,13,17,29,59,79,89}
%e a(9)=6, p=23, q={29,13,43,53,73,83}
%e a(10)=5, p=29, q={23,19,59,79,89}
%p A125002 := proc(n) local p,digs,res,r,d; p := ithprime(n) ; digs := convert(p,base,10) ; res := 0 ; for d from 1 to nops(digs) do for r from 0 to 9 do if r <> op(d,digs) and ( d <> nops(digs) or r > 0) then q := p-(op(d,digs)-r)*10^(d-1) ; if isprime(q) then res := res+1 ; fi ; fi ; od ; od ; RETURN(res) ; end ; for n from 1 to 100 do printf("%d,",A125002(n)) ; od ; # _R. J. Mathar_, Jan 13 2007
%o (Haskell)
%o import Data.List (delete)
%o a125002 n = sum $ map (a010051' . read) $
%o tail $ concatMap (f pds) [0 .. length pds - 1] where
%o pds = show $ a000040 n
%o f ws k = [us ++ [y] ++ vs |
%o let (us, v:vs) = splitAt k ws, y <- delete v "0123456789"]
%o -- _Reinhard Zumkeller_, Jul 06 2014
%o (Python)
%o from sympy import isprime, sieve
%o def neighbors(s):
%o digs = "0123456789"
%o ham1 = (s[:i]+d+s[i+1:] for i in range(len(s)) for d in digs if d!=s[i])
%o yield from (h for h in ham1 if h[0] != '0')
%o def a(n):
%o return sum(1 for s in neighbors(str(sieve[n])) if isprime(int(s)))
%o print([a(n) for n in range(1, 101)]) # _Michael S. Branicky_, May 09 2022
%Y Cf. A000040.
%K nonn,base
%O 1,1
%A _Zak Seidov_, Jan 08 2007
%E Corrected and extended by _Hans Havermann_ and _R. J. Mathar_, Jan 08 2007