A052383 Numbers without 1 as a digit.
0, 2, 3, 4, 5, 6, 7, 8, 9, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89
Offset: 1
Links
- Reinhard Zumkeller, Table of n, a(n) for n = 1..10000
- M. F. Hasler, Numbers avoiding certain digits, OEIS Wiki, Jan 12 2020.
- Index entries for 10-automatic sequences.
Crossrefs
Programs
-
Haskell
a052383 = f . subtract 1 where f 0 = 0 f v = 10 * f w + if r > 0 then r + 1 else 0 where (w, r) = divMod v 9 -- Reinhard Zumkeller, Oct 07 2014
-
Magma
[ n: n in [0..89] | not 1 in Intseq(n) ]; // Bruno Berselli, May 28 2011
-
Maple
M:= 3: # to get all terms with up to M digits B:= {$2..9}: A:= B union {0}: for m from 1 to M do B:= map(b -> seq(10*b+j,j={0,$2..9}), B); A:= A union B; od: sort(convert(A,list)); # Robert Israel, Jan 11 2016 # second program: A052383 := proc(n) option remember; if n = 1 then 0; else for a from procname(n-1)+1 do if nops(convert(convert(a,base,10),set) intersect {1}) = 0 then return a; end if; end do: end if; end proc: # R. J. Mathar, Jul 31 2016 # third Maple program: a:= proc(n) local l, m; l, m:= 0, n-1; while m>0 do l:= (d-> `if`(d=0, 0, d+1))(irem(m, 9, 'm')), l od; parse(cat(l))/10 end: seq(a(n), n=1..100); # Alois P. Heinz, Aug 01 2016
-
Mathematica
ban1Q[n_] := FreeQ[IntegerDigits[n], 1] == True; Select[Range[0, 89], ban1Q[#] &] (* Jayanta Basu, May 17 2013 *) Select[Range[0, 99], DigitCount[#, 10, 1] == 0 &] (* Alonso del Arte, Jan 12 2020 *)
-
PARI
a(n)=my(v=digits(n,9));for(i=1,#v,if(v[i],v[i]++));subst(Pol(v),'x,10) \\ Charles R Greathouse IV, Oct 04 2012
-
PARI
apply( {A052383(n)=fromdigits(apply(d->d+!!d, digits(n-1, 9)))}, [1..99]) \\ Defines the function and computes it for indices 1..99 (check & illustration) select( {is_A052383(n)=!setsearch(Set(digits(n)), 1)}, [0..99]) \\ Define the characteristic function is_A; as illustration, select the terms in [0..99] next_A052383(n, d=digits(n+=1))={for(i=1, #d, d[i]==1&& return((1+n\d=10^(#d-i))*d)); n} \\ Successor function: efficiently skip to the next a(k) > n. Used in A038603. - M. F. Hasler, Jan 11 2020
-
Python
from itertools import count, islice, product def A052383(): # generator of terms yield 0 for digits in count(1): for f in "23456789": for r in product("023456789", repeat=digits-1): yield int(f+"".join(r)) print(list(islice(A052383(), 72))) # Michael S. Branicky, Oct 15 2023
-
Python
from gmpy2 import digits def A052383(n): return int(''.join(str(int(d)+(d!='0')) for d in digits(n-1,9))) # Chai Wah Wu, Jun 28 2025
-
Scala
(0 to 99).filter(.toString.indexOf('1') == -1) // _Alonso del Arte, Jan 12 2020
-
sh
seq 0 1000 | grep -v 1; # Joerg Arndt, May 29 2011
Formula
a(1) = 1, a(n + 1) = f(a(n) + 1, a(n) + 1) where f(x, y) = if x < 10 and x <> 1 then y else if x mod 10 = 1 then f(y + 1, y + 1) else f(floor(x/10), y). - Reinhard Zumkeller, Mar 02 2008
a(n) is the replacement of all nonzero digits d by d + 1 in the base-9 representation of n - 1. - Reinhard Zumkeller, Oct 07 2014
Sum_{k>1} 1/a(k) = A082830 = 16.176969... (Kempner series). - Bernard Schott, Jan 12 2020
Extensions
Offset changed by Reinhard Zumkeller, Oct 07 2014
Comments