用c语言求最大公约数(辗转相除法)
设两个数,将大的数除以小的数取余数,再将除数除以余数,重复操作使余数为零时的除数即为最大公约数。
以下为例题:
//以下为代码:
#include<cstdio>
int main()
{
int m,n,r,t;
scanf("%d %d",&m,&n);
int a =m*n;//先算出两者乘积,为后面求最大公倍数准备。
while(n!=0)
{
t=m%n;//不需要比大小,即便前面小经过循环也会将两者调换。
m=n;
n=t;
}
printf("%d %d",m,a/m);//两数乘积除以最大公约数即为最小公倍数。
return 0;
}
版权声明:本文为kexla原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END