辗转相除法求最大公约数

又称欧几里得算法。

非递归实现:

int gcd(int a,int b){
	int c=a%b;
	while(c!=0){
		a=b;
		b=c;
		c=a%b;
	}
	return b;
}

递归实现:

int gcd(int a,int b){
	if(b==0){
		return a; 
	}else{ 
		return gcd(b,a%b); 
	}
}

利用最大公约数求最小公倍数:

int lcm(int a,int b){
	return a*b/gcd(a,b);
}
posted @ 2020-02-25 22:57  dump16  阅读(209)  评论(0)    收藏  举报