最大公约数
最大公约数的求法(辗转相除法):
判断两个数m,n中n是否是0,有则最大公约数是另外一个数m;否则将m除以n得到余数r,m和n的最大公约数就转化为n和r的最大公约数,递归实现得到结果。
1.递归实现:
int gcd(int x,int y){
if(y==0)
return x;
else
return gcd(y,x%y);
}
2.非递归实现
int gcd(int x,int y){
while(y){
int z=x%y;
x=y;
y=z;
}
return x;
}
最小公倍数
最小公倍数实际上就是,两个数的乘积除以最大公约数,所以要求最小公倍数首先要求最大公约数。
计蒜客T1400 最大公约数(二)
#include<iostream>
#include<algorithm>