分条整经机条宽的算法

2022-04-12

 分条整经机条宽的算法

scanf(;%d,%d;,n,m);//输入两个正整数.

if(nlt;m)//把大数放在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,那么原来的两个数是互质数)。

例如求1515和600的公约数,

一:用600除1515,商2余315;

二:用315除600,商1余285;

三:用285除315,商1余30;

四:用30除285,商9余15;

五:用15除30,商2余0。

1515和600的公约数是15。

两个正整数的公倍数=两个数的乘积÷两个数的公约数

由于两个数的乘积等于这两个数的公约数与公倍数的积。这就是说,求两个数的公倍数,可以先求出两个数的公约数,再用这两个数的公约数去除这两个数的积,所得的商就是两个数的公倍数。

例 求105和42的公倍数。

因为105和42的公约数是21,

105和42的积是4410,4410÷21=210,

所以,105和42的公倍数是210。


分享到