#include <iostream.h>
/*--------------------
函数类型:int
函数功能:求最大公因数
--------------------*/
int ZDGYS(int a,int b);
/*--------------------
函数类型:int
函数功能:求最小公倍数
--------------------*/
int ZXGBS(int a,int b);
void main()
{
int a,b;
cout<<"输入数字1"<<endl;
cin>>a;
cout<<"输入数字2"<<endl;
cin>>b;
cout<<"它们的最大公因数为:";
cout<<ZDGYS(a,b)<<endl;
cout<<"它们的最小公倍数为:";
cout<<ZXGBS(a,b)<<endl;
}
/*--------------------
ZDGYS()的实现
--------------------*/
int ZDGYS(int a,int b)
{
int i=2;
while(!(a%i==0&&b%i==0)) //从2开始求第一个可以同时约去的数
{
i++;
if(i>a||i>b)//当只能约去1的时候
return 1;
}
return i*ZDGYS(a/=i,b/=i); //将所有能约去的数连乘
}
/*--------------------
ZXGBS()的实现
--------------------*/
int ZXGBS(int a,int b)
{
return a*b/ZDGYS(a,b);
}