最大公约数 & 最小公倍数

求最大公约数即欧几里得算法,有gcd(a,b)=gcd(b,a%b)。
求最小公倍数(lcm),需要先求出最大公约数,有性质a∗b=gcd∗lcm。但注意为了防止溢出一般写为lcm = a / gcd * b 。

求gcd代码:

//递归
int gcd(int a, int b) {
	return b ? gcd(b, a % b) : a;
}
//循环
int gcd(int a, int b) {
	int temp = 0;
	while(b) {
		temp = a % b;
		a = b;
		b = temp;
	}
	return a;
}
发布了44 篇原创文章 · 获赞 0 · 访问量 862

猜你喜欢

转载自blog.csdn.net/Komatsu_1137/article/details/103941946