minusXsYpredminusXYminusX0XpredsXXlesXsYleXYlesX0falsele0Ytruegcd0Y0gcdsX0sXgcdsXsYifleYXsXsYiftruesXsYgcdminusXYsYiffalsesXsYgcdminusYXsXminusXsYpredminusXYminusXsYminusXYlesXsYleXYgcdsXsYifleYXsXsYgcdsXsYleYXiftruesXsYgcdminusXYsYiftruesXsYminusXYiffalsesXsYgcdminusYXsXiffalsesXsYminusYXtrueiftruesXsYgcdminusXYsYgcdsXsYifleYXsXsYiffalsesXsYgcdminusYXsXtrue1234561if31213true00s1111gcd21112minus211le20false00pred111000gcd211112if31213gcdsXsYifleYXsXsYgcdsXsYifleYXsXsYfalseiftruesXsYminusXYfalse24iffalsesXsYminusYXfalse13minusXsYminusXYtrue21minus212s1111minus211pred111000le21false00true00gcd211112if3111213minusXsYpredminusXYfalse2gcdsXsYleYXfalselesXsYleXYtrue1le21112s1111minus211pred111001le211112false00true01gcd21112if31213