A030141 Numbers in which parity of the decimal digits alternates.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 21, 23, 25, 27, 29, 30, 32, 34, 36, 38, 41, 43, 45, 47, 49, 50, 52, 54, 56, 58, 61, 63, 65, 67, 69, 70, 72, 74, 76, 78, 81, 83, 85, 87, 89, 90, 92, 94, 96, 98, 101, 103, 105, 107, 109, 121, 123, 125, 127, 129
Offset: 1
Examples
121 is alternating and in the sequence because its consecutive digits are odd-even-odd, 1 being odd and 2 even. Of course, 1234567890 is also alternating.
Links
- Reinhard Zumkeller, Table of n, a(n) for n = 1..10000
- 45th International Mathematical Olympiad (45th IMO), Problem #6 and Solution, Mathematics Magazine, 78 (2005), pp. 247, 250, 251.
- Index entries for 10-automatic sequences.
Crossrefs
Programs
-
Haskell
a030141 n = a030141_list !! (n-1) a030141_list = filter ((== 1) . a228710) [0..] -- Reinhard Zumkeller, Aug 31 2013
-
Mathematica
fQ[n_] := Block[{m = Mod[ IntegerDigits@ n, 2]}, m == Split[m, UnsameQ][[1]]]; Select[ Range[0, 130], fQ] (* Robert G. Wilson v, Apr 01 2011 *) Select[Range[0,150],FreeQ[Differences[Boole[EvenQ[IntegerDigits[#]]]],0]&] (* Harvey P. Dale, Jul 19 2025 *)
-
PARI
is(n,d=digits(n))=for(i=2,#d, if((d[i]-d[i-1])%2==0, return(0))); 1 \\ Charles R Greathouse IV, Jul 08 2022
-
Python
from itertools import count def A030141_gen(startvalue=0): # generator of terms >= startvalue return filter(lambda n:all(int(a)+int(b)&1 for a, b in zip(str(n),str(n)[1:])),count(max(startvalue,0))) A030141_list = list(islice(A030141_gen(),30)) # Chai Wah Wu, Jul 12 2022
-
Python
from itertools import chain, count, islice def altgen(seed, digits): allowed = "02468" if seed in "13579" else "13579" if digits == 1: yield from allowed; return for f in allowed: yield from (f + r for r in altgen(f, digits-1)) def agen(): yield from chain(range(10), (int(f+r) for d in count(2) for f in "123456789" for r in altgen(f, d-1))) print(list(islice(agen(), 65))) # Michael S. Branicky, Jul 12 2022
Extensions
Offset corrected by Reinhard Zumkeller, Aug 31 2013
Comments