Initial set up
Add code to pass initial test
Add tests for multiples.
Add test for arbitrary common factor.
Add test for multiple common factors
Refactor recursive implementation to loop.
Check at least one value is non-zero.
Add handling for negative values.
Refactor to modulo based algorithm
Namespace and project clean up. Add test program.