Multiplication and Division Algorithms