In this assignment you will use a linked representation to implement arbitrary precision arithmetic. The file Number.java describes a class that can be used to represent numbers of arbitrary size as lists of digits in base 10. The class also implements an addition operation. The assignment consists in adding a multiplication operation to the class.

You need to create two new methods: one to multiply a Number by ten, and the other to multiply a Number by a single digit. The multiplication method uses these two methods, as well as the addition method already provided.

Finally, you need to write a method Equals, to test the equality of two Numbers.

Test your program by generating three large numbers, say A, B and C, and then verifying that (A*B) * C = A * (B*C), or using any other arithmetic identity. To create large numbers, you can write a simple exponentiation method, that uses the multiplication method in a loop. Then, as an example, you could verify that (X^100) * (y^100) = (X*Y)**100 (where '^' denotes exponentiation).