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.

A073053 Apply DENEAT operator (or the Sisyphus function) to n.

Original entry on oeis.org

101, 11, 101, 11, 101, 11, 101, 11, 101, 11, 112, 22, 112, 22, 112, 22, 112, 22, 112, 22, 202, 112, 202, 112, 202, 112, 202, 112, 202, 112, 112, 22, 112, 22, 112, 22, 112, 22, 112, 22, 202, 112, 202, 112, 202, 112, 202, 112, 202, 112, 112, 22, 112, 22
Offset: 0

Views

Author

Michael Joseph Halm, Aug 16 2002

Keywords

Comments

DENEAT(n): concatenate number of even digits in n, number of odd digits and total number of digits. E.g., 25 -> 1.1.2 = 112 (Digits: Even, Not Even, And Total). Leading zeros are then omitted.
This is also known as the Sisyphus function. - N. J. A. Sloane, Jun 25 2018
Repeated application of the DENEAT operator reduces all numbers to 123. This is easy to prove. Compare A073054, A100961. - N. J. A. Sloane Jun 18 2005

Examples

			a(1) = 0.1.1 -> 11.
a(10000000000) = 10111 because 10000000000 has 10 even digits, 1 odd digit and 11 total digits
		

References

  • M. E. Coppenbarger, Iterations of a modified Sisyphus function, Fib. Q., 56 (No. 2, 2018), 130-141.
  • M. Ecker, Caution: Black Holes at Work, New Scientist (Dec. 1992)
  • M. J. Halm, Blackholing, Mpossibilities 69, (Jan 01 1999), p. 2.
  • J. Schram, The Sisyphus string, J. Rec. Math., 19:1 (1987), 43-44.
  • M. Zeger, Fatal attraction, Mathematics and Computer Education, 27:2 (1993), 118-123.

Crossrefs

Programs

  • Maple
    read("transforms") :
    A073053 := proc(n)
        local e,o,L ;
        if n = 0 then
            0 ;
        else
            e := A196563(n) ;
            o := A196564(n) ;
            L := [e,o,e+o] ;
            digcatL(L) ;
        end if;
    end proc: # R. J. Mathar, Jul 13 2012
    # Maple code based on R. J. Mathar's code for A171797, added by N. J. A. Sloane, May 12 2019 (Start)
    nevenDgs := proc(n) local a, d; a := 0 ; for d in convert(n, base, 10) do if type(d, 'even') then a :=a +1 ; end if; end do; a ; end proc:
    cat2 := proc(a, b) local ndigsb; ndigsb := max(ilog10(b)+1, 1) ; a*10^ndigsb+b ; end:
    catL := proc(L) local a, i; a := op(1, L) ; for i from 2 to nops(L) do a := cat2(a, op(i, L)) ; end do; a; end proc:
    A055642 := proc(n) max(1, ilog10(n)+1) ; end proc:
    A171797 := proc(n) local n1, n2 ; n1 := A055642(n) ; n2 := nevenDgs(n) ; catL([n1, n2, n1-n2]) ; end proc:
    A073053 := proc(n) local n1, n2 ; n1 := A055642(n) ; n2 := nevenDgs(n) ; catL([n2, n1-n2, n1]) ; end proc:
    seq(A073053(n), n=1..80) ; (End)
    L:=proc(n) if n=0 then 1 else floor(evalf(log(n)/log(10)))+1; fi; end;
    S:=proc(n) local Le,Ld,Lt,t1,e,d,t; global L;
    t1:=convert(n,base,10); e:=0; d:=0; t:=nops(t1);
    for i from 1 to t do if (t1[i] mod 2) = 0 then e:=e+1; else d:=d+1; fi; od:
    Le:=L(e); Ld:=L(d); Lt:=L(t);
    if e=0 then 10^Lt*d+t
    elif d=0 then 10^(Ld+Lt)*e+10^Lt*d+t
    else 10^(Ld+Lt)*e+10^Lt*d+t; fi;
    end;
    [seq(S(n),n=1..200)]; # N. J. A. Sloane, Jun 25 2018
    # alternative Maple program:
    a:= n-> (l-> (e-> parse(cat(e, (h-> [h-e, h][])(nops(l))))
        )(nops(select(x-> x::even, l))))(convert(n, base, 10)):
    seq(a(n), n=0..200);  # Alois P. Heinz, Jan 21 2022
  • Mathematica
    f[n_] := Block[{id = IntegerDigits[n]}, FromDigits[ Join[ IntegerDigits[ Length[ Select[id, EvenQ[ # ] &]]], IntegerDigits[ Length[ Select[id, OddQ[ # ] &]]], IntegerDigits[ Length[ id]] ]]]; Table[ f[n], {n, 0, 55}] (* Robert G. Wilson v, Jun 09 2005 *)
    s={};Do[id=IntegerDigits[n];ev=Select[id, EvenQ];ne=Select[id, OddQ];fd=FromDigits[{Length[ev], Length[ne], Length[id]}]; s=Append[s, fd], {n, 81}];SameQ[newA073053-s] (* Zak Seidov *)
    deneat[n_]:=Module[{idn=IntegerDigits[n]},FromDigits[Flatten[ IntegerDigits/@ {Count[ idn,?EvenQ],Count[ idn,?OddQ],Length[ idn]}]]] Array[ deneat,60,0]// Flatten (* Harvey P. Dale, Aug 13 2021 *)
  • Python
    def a(n):
        s = str(n)
        e = sum(1 for c in s if c in "02468")
        return int(str(e) + str(len(s)-e) + str(len(s)))
    print([a(n) for n in range(54)]) # Michael S. Branicky, Jan 21 2022

Extensions

Edited and corrected by Jason Earls and Robert G. Wilson v, Jun 03 2005
a(0) added by N. J. A. Sloane, May 12 2019