首页 > 代码库 > 求最大公约数和最小公倍数

求最大公约数和最小公倍数

  学习C++入门级的题目,求最大公约数和最小公倍数,这里介绍两种求最大公约数的方法,即辗转相除法和辗转相减法。辗转相除法的原理自行百度,辗转相减法的原理就是只要两数不想等就用大数减小数,直至相等,求最小公倍数的方法就是用两数的乘积除以最大公约数。

 

#include<iostream>using namespace std;int maxf(int a,int b)//辗转相减法{	while(a != b)	{		if(a > b)			return a = a - b;		else			return b = b - a;	}	}int maxff(int a ,int b)辗转相除法{	int r;	if(a < b)	{		r = a;		a = b;		b = r;	}	if(a % b == 0)		return b;	else		return maxff(b ,a % b);	}int main(){	int a,b;	while(cin>>a>>b)	{		cout<<maxff(a,b)<<" "<<(a * b)/maxf(a,b)<<endl;输出最大公约数和最小公倍数		cout<<maxff(a,b)<<" "<<(a * b)/maxff(a,b)<<endl;	}	return 0;}

 

  

 

  

求最大公约数和最小公倍数