cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

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.

Original entry on oeis.org

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

Views

Author

Zak Seidov, Jan 08 2007

Keywords

Examples

			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}
		

Crossrefs

Cf. A000040.

Programs

  • 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
    
  • 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
  • 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

Extensions

Corrected and extended by Hans Havermann and R. J. Mathar, Jan 08 2007