A134808 Cyclops numbers.
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
Examples
109 is a cyclops number because 109 has only one digit 0 and this 0 is the middle digit.
Links
- Vincenzo Librandi, Table of n, a(n) for n = 1..1000
- Brady Haran and Simon Pampena, Glitch Primes and Cyclops Numbers, Numberphile video (2015).
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
Comments