求大神帮忙解释一个程序中的一个小算法(本人小白)
#include <stdio.h>int main ()
{int p,r,n,m,temp;
printf("请输入2个整数:",n,m);
scanf("%d %d",&n,&m);
if (n<m)
{temp=n;
n=m;
m=temp;
} //把大数放在n中, 小数放在m中 }
p=n*m; //先将n和m的乘积保存在p中, 以便求最小公倍数时用
while (m!=0) //求n和m的最大公约数
{
r=n%m; /*不是很懂*?
n=m;
m=r;
}
printf("最大公约数=%d\n",n);
printf("最小公倍数=%d\n",p/n); // p是原来两个整数的乘积
return 0;
}