What easy algorithms are there for calculating products of cycle decompositions?

Here is the easy algorithm we are taught for adding two numbers in base-10 notation. We are taught this algorithm in first or second grade.

  sub infix:<+>(@x, @y) {    #x, y are lists of digits    #returns a list of digits    my @greater = (@y.elems > @x.elems) ?? @y !! @x;    my @lesser_ = (@y.elems > @x.elems) ?? @x !! @y;    my @gPopped = @greater;    my @lPopped = @lesser_;    my $  carry = 0;    my @sum;    loop (my $  i = 0; $  i < @greater.elems; $  i++) {      if (@lPopped.elems >= 1) {        my $  gDigit = @gPopped.tail;        my $  lDigit = @lPopped.tail;        @sum.append: (($  gDigit + $  lDigit) % 10) + $  carry;        $  carry = (($  gDigit + $  lDigit) / 10).floor;        @lPopped = @lPopped.head(@lPopped.elems - 1);        @gPopped = @gPopped.head(@gPopped.elems - 1);      } else {         my $  gDigit = @gPopped.tail;         @sum.append: $  gDigit + $  carry;         $  carry = 0;         @gPopped = @gPopped.head(@gPopped.elems - 1);      }    }    return @sum.reverse;   } 

The algorithm is very easy and a child can do it by hand. Meanwhile, I am unaware of any algorithm for multiplying two permutations decomposed into cycle form (e.g. $ (123)\times(12)(34)$ ). What is an easy algorithm for multiplying two cycles?