`' Ethiopian multiplication is a method of multiplying integers using only addition, doubling, and halving.`

function half(x)

set result = floor(x/2)

end function

function double(x)

set result = 2*x

end function

function even(x)

set result = (x/2 > floor(x/2))

end function

program ethiopian_mul(a,b)

relation first, second

while a >= 1

insert a, b

set a = half(a)

set b = double(b)

end while

extend third = even(first) * second

print

project third sum

end program

run ethiopian_mul(17,34)

print

Ethiopian multiplication is a method of multiplying integers using only addition, doubling, and halving.

first |
second |
third |

17 |
34 |
34 |

8 |
68 |
0 |

4 |
136 |
0 |

2 |
272 |
0 |

1 |
544 |
544 |