le 0 y true le s x 0 false le s x s y le x y minus 0 y 0 minus s x y if_minus le s x y s x y if_minus true s x y 0 if_minus false s x y s minus x y gcd 0 y y gcd s x 0 s x gcd s x s y if_gcd le y x s x s y if_gcd true s x s y gcd minus x y s y if_gcd false s x s y gcd minus y x s x rand x x rand x rand s x s 1 true 0 gcd 2 le 2 0 0 minus 2 if_gcd 3 if_minus 3 rand 1 false 0 FULL