Hello Steven,
As FYI: recently I have published on CodeProject a short article (tip) on rather efficient implementation of GCD/LCM based on Euclid algorithm. They use iteration instead of recursion, because re-cursive algorithms in general and in this particular case are relatively inefficient in both execution time and resource utilization comparing to the iterative ones (iterative loop).
Here is the link to the tip:
Fast Integer Algorithms: Greatest Common Divisor and Least Common Multiple, .NET solution[
^]
Kind regards,
Alex