求x 和 y 的 最大公约数 a ,(x > y)
x = an;
y = am; n 和 m 是 正整数;
x = t*y + r;
an = t*am +r;
n = t*m + r/a; 这里n 和 t*m 是 正整数 所以 r/a 也是 整数;
所以呢~ (x , y) 和 (y , r) 的 最大公约数是一样的~~
这样循环下来~~到 r = 0 为止。
######################################
#include<iostream>
using namespace std;
int gcd(int,int);
int main()
{
int x=144;
int y=36;
cout<<gcd(x,y)<<endl;
system(“pause”);
return 0;
}
int gcd(int x, int y)
{
int r;
if(x<y)
{
int temp=x;
x=y;
y=temp;
}
while(y)
{
r=y;
y=x%y;
x=r;
}
return x;
}