[wip] gcd function