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.

A111065 Numbers that look the same when rotated by 180 degrees, using only digits 0, 6 and 9.

Original entry on oeis.org

0, 69, 96, 609, 906, 6009, 6699, 6969, 9006, 9696, 9966, 60009, 66099, 69069, 90006, 96096, 99066, 600009, 606909, 609609, 660099, 666999, 669699, 690069, 696969, 699669, 900006, 906906, 909606, 960096, 966996, 969696, 990066, 996966, 999666, 6000009, 6060909
Offset: 1

Views

Author

Paul Stoeber (pstoeber(AT)uni-potsdam.de), Oct 08 2005

Keywords

Comments

Strobogrammatic numbers (A000787) without digits 1 or 8.
Apparently this sequence and A006072 have the same parity. - Jeremy Gardiner, Oct 15 2005
There are no primes in this sequence because all terms are divisible by 3. - M. F. Hasler, May 04 2012

Crossrefs

Cf. strobogrammatic numbers A000787. If 8's are included we get A111156.

Programs

  • 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 '9'='6';i('0':x)='6':x;i('6':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
    
  • Mathematica
    fQ[n_] := Block[{s = {0, 6, 9}, id = IntegerDigits[n]}, If[ Union[ Join[s, id]] == s && (id /. {6 -> 9, 9 -> 6}) == Reverse[id], True, False]]; Select[ Range[0, 10^6], fQ[ # ] &] (* Robert G. Wilson v, Oct 11 2005 *)
  • PARI
    is_A111065(n)=!setminus(Set(n=Vec(Str(n))),Vec("069")) & apply(t->Vec("096")[max(eval(t)/3,1)], n)==vecextract(n,"-1..1")  \\ M. F. Hasler, May 04 2012
    
  • 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 0
        for d in count(2):
            for start in "69":
                for rest in product("069", repeat=d//2-1):
                    left = start + "".join(rest)
                    right = ud(left)
                    for mid in [[""], ["0"]][d%2]:
                        yield int(left + mid + right)
    print(list(islice(agen(), 37))) # Michael S. Branicky, Mar 29 2022

Extensions

Offset corrected by Reinhard Zumkeller, Sep 26 2014
a(36) and beyond from Michael S. Branicky, Mar 29 2022