辗转相除法:
if v>u
将变量u与v交换 (使大者u为被除数)
while (u/v的余数r!=0)
{u=v (使除数v变为被除数u)
v=r (使余数r变为除数v)
}
输出最大公约数v(目前)
最小公倍数l=u*v(原来)/最大公约数v
1.计算最大公约数和最小公倍数
源代码:
#include <iostream>
using namespace std;
int main()
{ int p,r,u,v,temp;
cout<<"请输入两个正整数u,v:"<<endl;
cin>>u>>v;
if (u<v)
{temp=u;
u=v;
v=temp;
}
p=u*v;
r=u%v;
while(r!=0)
{u=v;
v=r;
r=u%v;
}
cout<<"它们的最大公约数为:"<<v<<endl;
cout<<"它们的最小公倍数为:"<<p/v<<endl;
return 0;
}