c编写两个函数,分别求最大公约数和最小公倍数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c编写两个函数,分别求最大公约数和最小公倍数
最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。

求两个正整数m和n的最大公约数可用欧几里德算法(辗转相除法)。

main()
{
int p,r,n,m,temp;
printf("please enter 2 numbers n,m:");
scanf("%d,%d",&n,&m);//输出两个正整数.
if(n\ucm)//把大数放在n中,把小数放在m中.
{temp=n;
n=m;
m=temp;
}
p=n*m;//p就是原来两个数n,m的乘积.
while(m!=0)//求两个数n,m的最大公约数.
{
r=n%m;
n=m;
m=r;
}
printf("its maxgongyueshu:%d\\n",n);//打印最大公约数.
printf("its mingongbeishu:%d\\n",p/n);列印最轻公倍数.
原理
用欧几里德算法(只身二者乘法)谋两个数的最大公约数的步骤如下:
先用小的一个数除大的一个数,得第一个余数;
再用第一个余数除大的一个数,得第二个余数;
又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数除去前一个余数,直至余数就是0年才。

那么,最后一个除数就是所求的最大公约数(如果最后的除数就是1,那么原来的两个数就是互质数)。

由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。

这就是说,求两个数的最小公倍数,可以先求出两个数的最大公约数,再用这两个数的最大公约数去除这两个数的积,所得的商就是两个数的最小公倍数。

相关文档
最新文档