请高手帮我解释C++程序

来源:百度知道 编辑:UC知道 时间:2024/06/09 19:41:47
求两个数最大公约数,和最小公倍数
#include<iostream>
using namespace std;
int main ()
{int p,r,n,m,temp;
cin>>n>>m;
if(n<m)
{temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)//下面我看不懂,为什么while后的语句是求最大公约数
{r=n%m;
n=m;
m=r;
}
cout<<"HCF="<<n<<endl;
cout<<"lcd="<<p/n<<endl;
return 0;
}

那个算法就做辗转相除法,查下数论的书,里边有算法介绍,你参考下http://baike.baidu.com/view/255668.html?wtp=tt

这个是数学算法问题,如果你只是学习编程,实现某个功能,不用去计较
否则 去找本c语言算法的书,里面介绍很详细

什么狗屎程序,萝莉啰唆,上面不是求出最大公约数了么?
最小公倍数=m*n/最大公约数