您的位置:首页 > 其它

最大公约数和最小公倍数

2017-11-05 17:34 281 查看
/*

原理:公约数指的是能够整除两个数字的一个数字。那么公约数一定能被这两个数字的差整除。既然能被差整除,那就能被这个差和最小的那个数字整除,就这么反复的应用。 

因为辗转法,得到最后的余数一定为0,即有一个数会整除他们两个数  

而最先得到余数0的约数就是他们的最大公约数了

*/

#include"stdio.h"

int main()

{
int m,n,t,h,a,b,q;
printf("输入m,n的值:");
scanf("%d %d",&m,&n);
a=m;        //暂存两个数,将这两个数的原始值保存下来 
b=n;
if (n>m)   //判断这两个数的大小,将大的那个数放在前面 
{
t=m;
m=n;
n=t; //交换值 
}
while (m%n!=0)
// 重复执行while循环,直到余数为0 

h=n;
n=m%n;
//找到余数为0之前那个最小的余数 
m=n;
}
a=a/n;
b=b/n;
q=a*b*n;
printf("两数最大公约数为 %d,最小公倍数为 %d\n",n,q);

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  应用