欧几里德游戏的算法怎么写

这是欧几里德的游戏吗?欧几里德算法看下面。

我还是不太明白你的用意。根据问题,先写出两个正整数6和3。第一个人不会写数字,输了。

写六两个正整数,只有四个,第二个人又输了。你确定只有一个确定的结果吗?

欧几里德算法

欧几里德算法,也称为轮流除法,用于计算两个整数A和B的最大公约数..其计算原理取决于以下定理:

定理:gcd(a,b) = gcd(b,a mod b)

证明A可以表示为a = kb+r,那么R = A mod B。

假设d是a和b的公约数,那么有

D|a,d|b,r = a-kb,所以d|r

所以d是(b,a mod b)的公约数。

假设d是(b,a mod b)的公约数,那么

D | b,d |r,但是a = kb +r R。

所以d也是(a,b)的公约数。

所以(a,b)和(b,a mod b)的公约数相同,它们的最大公约数一定相等,这是证明的。

欧几里德算法就是基于这个原理,它的算法用C++语言描述为:

无效掉期(利息和利息。一、int & ampb)

{

int c = a;

a = b;

b = c;

}

int gcd(int a,int b)

{

如果(0 == a)

{

返回b;

}

如果(0 == b)

{

返回a;

}

如果(a & gtb)

{

互换(a,b);

}

int c;

for(c = a % b;c & gt0 ;c = a % b)

{

a = b;

b = c;

}

返回b;

}

参考资料:

因特网