login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A111156
Numbers that look the same when printed upside down.
3
0, 8, 69, 88, 96, 609, 689, 808, 888, 906, 986, 6009, 6699, 6889, 6969, 8008, 8698, 8888, 8968, 9006, 9696, 9886, 9966, 60009, 60809, 66099, 66899, 68089, 68889, 69069, 69869, 80008, 80808, 86098, 86898, 88088, 88888, 89068, 89868, 90006, 90806, 96096, 96896, 98086, 98886, 99066, 99866, 600009
OFFSET
1,2
COMMENTS
Numbers with 1's are excluded.
Numbers written with digits 0,6,8,9, with 6 and 9 interchanged when reversed. - Robert Israel, Jul 02 2018
LINKS
MAPLE
f:= proc(n) local L, Lp, nl;
L:= subs(1=6, 2=8, 3=9, convert(n, base, 4));
nl:= nops(L);
Lp:= subs([6=9, 9=6], L);
add(Lp[-i]*10^(i-1), i=1..nl)+add(L[i]*10^(nl+i-1), i=1..nl);
end proc:
g:= proc(n) local L, Lp, nl;
L:= subs(1=6, 2=8, 3=9, convert(n, base, 4));
nl:= nops(L);
Lp:= subs([6=9, 9=6], L);
seq(add(Lp[-i]*10^(i-1), i=1..nl)+x*10^nl+add(L[i]*10^(nl+i), i=1..nl), x=[0, 8]);
end proc:
0, 8, seq(op([seq(f(n), n=4^i..4^(i+1)-1), seq(g(n), n=4^i..4^(i+1)-1)]), i=0..2); # Robert Israel, Jul 02 2018
MATHEMATICA
Select[Range[0, 600010], ContainsOnly[IntegerDigits[#], {0, 6, 8, 9}]&&IntegerReverse[FromDigits[IntegerDigits[#]/.{6->9, 9->6}]]==#&] (* James C. McMahon, Apr 30 2024 *)
PROG
(Haskell) main=print$"0":concat[concat[[reverse(reverse(map f x)++z++x)|x<-y]|z<-["", "0"]]|y<-s(iterate i"6")]; f '0'='0'; f '6'='9'; f '8'='8'; f '9'='6'; i('0':x)='6':x; i('6':x)='8':x; i('8':x)='9':x; i('9':x)='0':i x; i""="6"; s(x:y@(z:_))=let w:v=s y in if length x==length z then(x:w):v else[x]:w:v
(Python)
from itertools import count, islice, product
def ud(s): return s[::-1].translate({ord('6'):ord('9'), ord('9'):ord('6')})
def agen():
yield from [0, 8]
for d in count(2):
for start in "689":
for rest in product("0689", repeat=d//2-1):
left = start + "".join(rest)
right = ud(left)
for mid in [[""], ["0", "8"]][d%2]:
yield int(left + mid + right)
print(list(islice(agen(), 48))) # Michael S. Branicky, Mar 29 2022
CROSSREFS
Cf. strobogrammatic numbers A000787. If 8's are excluded we get A111065.
Sequence in context: A303010 A087487 A178368 * A297633 A152279 A015575
KEYWORD
base,easy,nonn
AUTHOR
Paul Stoeber (pstoeber(AT)uni-potsdam.de), Oct 09 2005
EXTENSIONS
Corrected by Robert Israel, Jul 02 2018
STATUS
approved