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 mod 0 y 0 mod s x 0 0 mod s x s y if_mod le y x s x s y if_mod true s x s y mod minus x y s y if_mod false s x s y s x rand x x rand x rand s x s 1 mod 2 true 0 if_mod 3 le 2 0 0 minus 2 if_minus 3 rand 1 false 0 FULL