euclid'shighestcommonfactoralgorithm