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.

A134808 Cyclops numbers.

Original entry on oeis.org

0, 101, 102, 103, 104, 105, 106, 107, 108, 109, 201, 202, 203, 204, 205, 206, 207, 208, 209, 301, 302, 303, 304, 305, 306, 307, 308, 309, 401, 402, 403, 404, 405, 406, 407, 408, 409, 501, 502, 503, 504, 505, 506, 507, 508, 509, 601, 602, 603, 604, 605, 606
Offset: 1

Views

Author

Omar E. Pol, Nov 21 2007

Keywords

Comments

Numbers with middle digit 0, that have only one digit 0, and the total number of digits is odd; the digit 0 represents the eye of a cyclops.

Examples

			109 is a cyclops number because 109 has only one digit 0 and this 0 is the middle digit.
		

Crossrefs

Programs

  • Mathematica
    cyclopsQ[n_Integer, b_:10] := Module[{digitList = IntegerDigits[n, b], len, pos0s, flag}, len = Length[digitList]; pos0s = Select[Range[len], digitList[[#]] == 0 &]; flag = OddQ[len] && (Length[pos0s] == 1) && (pos0s == {(len + 1)/2}); Return[flag]]; Select[Range[0,999],cyclopsQ] (* Alonso del Arte, Dec 16 2010 *)
    Reap[Do[id=IntegerDigits[n];If[Position[id,0]=={{(Length[id]+1)/2}},Sow[n]],{n,0,10^3}]][[2,1]] (* Zak Seidov, Dec 17 2010 *)
    cycQ[n_]:=Module[{idn=IntegerDigits[n],len=IntegerLength[n]},OddQ[len] && DigitCount[ n,10,0]==1&&idn[[(len+1)/2]]==0]; Join[{0},Select[Range[ 0,700],cycQ]] (* Harvey P. Dale, Mar 07 2020 *)
  • PARI
    a(n, {base=10}) = my (l=0); my (r=n-1); while (r >= (base-1)^(2*l), r -= (base-1)^(2*l); l++); return (base^(l+1) * ( (base^l-1)/(base-1) + if (base>2, fromdigits(digits(r \ ((base-1)^l), (base-1)), base)) ) + ( (base^l-1)/(base-1) + if (base>2, fromdigits(digits(r % ((base-1)^l), (base-1)), base)))) \\ Rémy Sigrist, Apr 29 2017
    
  • Python
    from itertools import product
    def cyclops(upto=float('inf'), upton=float('inf')): # generator
      yield 0
      c, n, half_digits, pow10 = 0, 1, 0, 10
      while 100**(half_digits+1) < upto and n < upton:
        half_digits += 1
        pow10 *= 10
        for left in product("123456789", repeat=half_digits):
          left_plus_eye = int("".join(left))*pow10
          for right in product("123456789", repeat=half_digits):
            c, n = left_plus_eye + int("".join(right)), n+1
            if c <= upto and n <= upton: yield c
    print([c for c in cyclops(upto=606)])
    print([c for c in cyclops(upton=52)]) # Michael S. Branicky, Jan 05 2021
  • Sage
    def is_cyclops(n, base=10):
        dg = n.digits(base) if n > 0 else [0]
        return len(dg) % 2 == 1 and dg[len(dg)//2] == 0 and dg.count(0) == 1
    is_A134808 = lambda n: is_cyclops(n)
    # D. S. McNeil, Dec 17 2010