您的位置:首页 > 其它

辗转相除法:求最大公约数和最小公倍数

2018-03-26 21:23 260 查看
这么简单哈哈哈我大一C语言都会做!
方法一:常规算法#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <stack>
using namespace std;

int main()
{
int m,n,r,p;
cin>>m>>n;
p=m*n;
if(m<n)
swap(m,n);
r=m%n;
while(r)
{
m=n;
n=r;
r=m%n;
}
cout<<n<<" "<<p/n<<endl;
}方法二:递归算法#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <stack>
using namespace std;
int gcd(int m,int n)
{
return m%n?gcd(n,m%n):n;
}
int main()
{
int m,n,r,p;
cin>>m>>n;
p=m*n;
cout<<gcd(m,n)<<" "<<p/gcd(m,n)<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: