您的位置:首页 > 其它

用辗转相除法求最大公约数

2012-08-27 08:58 155 查看
参考资料:http://kuapig.ycool.com/post.2842074.html
// 求最大公约数.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;

//最大公约数
int gcd(int a, int b)
{
	if ( a > b )
	{
		if ( a % b == 0 )
		{
			return b;
		}
		else
		{
			gcd(b, a%b);
		}
	}
	else
	{
		if ( b % a ==  0 )
		{
			return a;
		}
		else
		{
			gcd(a, b%a);
		}
	}
}

//最小公倍数
int lcm(int a, int b)
{
	return ( (a*b)/gcd(a,b) );
}

int _tmain(int argc, _TCHAR* argv[])
{
	while(1)
	{
		int x,y;
		cin>>x>>y;
		cout<<x<<" "<<y<<" "<<gcd(x,y)<<" "<<lcm(x,y)<<endl;;
	}
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: