|
|
A080788
|
|
Primes that are still primes when turned upsided down.
|
|
2
|
|
|
11, 19, 61, 101, 109, 181, 199, 601, 619, 661, 1019, 1061, 1091, 1109, 1181, 1601, 1609, 1669, 1699, 1811, 1901, 1999, 6011, 6091, 6101, 6199, 6619, 6661, 6689, 6691, 6899, 6991, 10061, 10069, 10091, 10691, 10861, 10909, 11069, 11681, 11909, 16001, 16091
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,1
|
|
REFERENCES
|
P. Giannopoulos, The Brainteasers, unpublished.
|
|
LINKS
|
|
|
PROG
|
(Haskell)
import Data.List (unfoldr)
a048890 n = a048890_list !! (n-1)
a048890_list = filter f a000040_list where
f x = all (`elem` [0, 1, 6, 8, 9]) ds && x' /= x && a010051 x' == 1
where x' = foldl c 0 ds
c v 6 = 10*v + 9; c v 9 = 10*v + 6; c v d = 10*v + d
ds = unfoldr d x
d z = if z == 0 then Nothing else Just $ swap $ divMod z 10
(Python)
from sympy import isprime
from itertools import product
def ud(s):
return s[::-1].translate({ord('6'):ord('9'), ord('9'):ord('6')})
def auptod(maxdigits):
alst = []
for d in range(1, maxdigits+1):
for p in product("01689", repeat=d-1):
if d > 1 and p[0] == "0": continue
for end in "19":
s = "".join(p) + end
t, udt = int(s), int(ud(s))
if isprime(t) and isprime(udt): alst.append(t)
return alst
|
|
CROSSREFS
|
|
|
KEYWORD
|
base,easy,nonn
|
|
AUTHOR
|
P. Giannopoulos (pgiannop1(AT)yahoo.com), Mar 12 2003
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|