greatest common divisor euclid s algorithm
factorial made easy iteratively, recursively