#include <iostream>
using namespace std;
int MaxY(int a,int b)
{
int min, max;
max=a>b?a:b;
min=a<b?a:b;
if(max%min==0)
return min;
else
return MaxY(min,max%min);
}
int main()
{
int a,b;
cout<<"输入两个整数,用空格分隔,按回车键(Enter):";
cin>>a>>b;
cout<<"这两个整数的最大公约数为:"<<MaxY(a,b)<<endl;
return 0;
}
辗转相除法
借助最大公约数求最小公倍数
步骤:
一、利用辗除法或其它方法求得最大公约数
二、 最小公倍数等于两数之积除以最大公约数。
#include <iostream>
using namespace std;
int MinY(int a,int b)
{
int min, max;
int r;
max=a>b?a:b;
min=a<b?a:b;
if(max%min==0)
return max;
while(max%min!=0)
{
r=max%min;
max=min;
min=r;
}
return a*b/min;
}
int main()
{
int a,b;
cout<<"输入两个整数,用空格分隔,按回车键(Enter):";
cin>>a>>b;
cout<<"这两个整数的最小公倍数为:"<<MinY(a,b)<<endl;
return 0;
}