inline int stein(int a, int b)
{
if (a < b) swap(a, b); //交换,使a为较大数;
if (b == 0) return a; //当相减为零,即两数相等时,gcd=a;
if ((a % 2 == 0) && (b % 2 == 0)) return stein(a / 2, b / 2) * 2; // s1, 注意最后的左移,在递归返回过程中将2因子乘上
else if ((a % 2 == 1) && (b % 2 == 0)) return stein(a, b / 2); // s2;
else if ((a % 2 == 0) && (b % 2 == 1)) return stein(a / 2, b);
else return stein(a - b, b); // s3;
}