【递归】辗转相除法

 

辗转相除法; 又名欧几里德算法(Euclidean algorithm),是求最大公约数的算法

原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。并一直递归

#include<iostream>
using namespace std;
/*辗转相除法:两个整数的最大公约数等于,大的除以小的余数,一直递归,直到整除余0后的整数
最小公倍数为两个公约数之积除以最大公约数 */ 
int gcd(int a,int b);
int main()
{
	int a,b,c,g;
	cout<<"please input two numbers";
	cin>>a,b;
	c=a*b;
	g=gcd(a,b);
	cout<<"最大公约数为"<<g<<"最小公倍数为"<<c/g; 
	return 0;
}

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

推导过程:==心疼自己没学好数学

发布了27 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_38304672/article/details/80273799