func double (n) { n << 1 } func halve (n) { n >> 1 } func isEven (n) { n&1 == 0 } func ethiopian_mult(a, b) { var r = 0 while (a > 0) { r += b if !isEven(a) a = halve(a) b = double(b) } return r } say ethiopian_mult(17, 34)
578
Last updated 1 year ago