login
A125002
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.
3
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, 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, 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
OFFSET
1,1
LINKS
EXAMPLE
The 5th prime 11 leads to 7 other primes: 13,17,19,31,41,61,71, hence a(5)=7.
a(6)=8, p=13, q={11,17,19,23,43,53,73,83}
a(7)=7, p=17, q={11,13,19,37,47,67,97}
a(8)=7, p=19, q={11,13,17,29,59,79,89}
a(9)=6, p=23, q={29,13,43,53,73,83}
a(10)=5, p=29, q={23,19,59,79,89}
MAPLE
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
PROG
(Haskell)
import Data.List (delete)
a125002 n = sum $ map (a010051' . read) $
tail $ concatMap (f pds) [0 .. length pds - 1] where
pds = show $ a000040 n
f ws k = [us ++ [y] ++ vs |
let (us, v:vs) = splitAt k ws, y <- delete v "0123456789"]
-- Reinhard Zumkeller, Jul 06 2014
(Python)
from sympy import isprime, sieve
def neighbors(s):
digs = "0123456789"
ham1 = (s[:i]+d+s[i+1:] for i in range(len(s)) for d in digs if d!=s[i])
yield from (h for h in ham1 if h[0] != '0')
def a(n):
return sum(1 for s in neighbors(str(sieve[n])) if isprime(int(s)))
print([a(n) for n in range(1, 101)]) # Michael S. Branicky, May 09 2022
CROSSREFS
Cf. A000040.
Sequence in context: A244584 A369233 A092531 * A285245 A098528 A242715
KEYWORD
nonn,base
AUTHOR
Zak Seidov, Jan 08 2007
EXTENSIONS
Corrected and extended by Hans Havermann and R. J. Mathar, Jan 08 2007
STATUS
approved