|
|
A158124
|
|
Weakly prime numbers (or isolated primes): changing any one decimal digit always produces a composite number, with restriction that first digit may not be changed to a 0.
|
|
9
|
|
|
294001, 505447, 584141, 604171, 929573, 971767, 1062599, 1282529, 1524181, 2017963, 2474431, 2690201, 3070663, 3085553, 3326489, 4393139, 5152507, 5285767, 5564453, 5575259, 5974249, 6173731, 6191371, 6236179, 6463267, 6712591, 7204777, 7469789, 7469797, 7810223
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
The definition could be restated as "primes p with d digits such that there is no prime q with at most d digits at Hamming distance 1 from p (in base 10)". - N. J. A. Sloane, May 06 2019
For the following values of k, 5, 6, 7, 8, 9, 10, the number of terms < 10^k in this sequence is 0, 6, 43, 406, 3756, 37300. - Jean-Marc Rebert, Nov 10 2015
|
|
LINKS
|
|
|
MAPLE
|
filter:= proc(n)
local L, i, d, ds;
if not isprime(n) then return false fi;
L:= convert(n, base, 10);
for i from 1 to nops(L) do
if i = nops(L) then ds:= {$1..9} minus {L[i]}
elif i = 1 then ds:= {1, 3, 7, 9} minus {L[i]}
else ds:= {$0..9} minus {L[i]}
fi;
for d in ds do
if isprime(n + (d - L[i])*10^(i-1)) then return false fi;
od
od;
true
end proc:
select(filter, [seq(i, i=11..10^6, 2)]); # Robert Israel, Dec 15 2015
|
|
MATHEMATICA
|
Select[Prime@ Range[10^5], Function[n, Function[w, Total@ Map[Boole@ PrimeQ@ # &, DeleteCases[#, n]] &@ Union@ Flatten@ Map[Function[d, FromDigits@ ReplacePart[w, d -> #] & /@ If[d == 1, #, Prepend[#, 0]] &@ Range@ 9], Range@ Length@ w] == 0]@ IntegerDigits@ n]] (* Michael De Vlieger, Dec 13 2016 *)
|
|
PROG
|
(PARI) isokp(n) = {v = digits(n); for (k=1, #v, w = v; if (k==1, idep = 1, idep=0); for (j=idep, 9, if (j != v[k], w[k] = j; ntest = subst(Pol(w), x, 10); if (isprime(ntest), return(0)); ); ); ); return (1); }
lista(nn) = {forprime(p=2, nn, if (isokp(p), print1(p, ", ")); ); } \\ Michel Marcus, Dec 15 2015
(Python)
from sympy import isprime
def h1(n): # hamming distance 1 neighbors of n, not starting with 0
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) if c!=s[i] and not (i==0 and c=="0"))
def ok(n): return isprime(n) and all(not isprime(k) for k in h1(n))
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|