Added recursive version of GCD