起运港:
目的港:
国际空运
国际海运
国际快递

最小公倍数怎么求

 NEWS     |      2022-06-08 11:24

两个数的最小公倍数用算法怎么算

int MaxAB(int a,int b)

if(a>b && !a%b || a==b)return a;

if(a < b && !b%a)return b;

//先求最大公约数

int nMul;

int nMinAB = (a>b)?(nMul=b,a%b):(nMul=a,b%a);

while(nMinAB)

{

int nTemp = nMinAB;

nMinAB = nMul % nMinAB;

nMul = nTemp;

}

return A*B/nMul;

}(1)分解质因数法

先把这几个数的质因数写出来,最小公倍数等于它们所有的质因数的乘积(如果有几个质因数相同,则比较两数中哪个数有该质因数的个数较多,乘较多的次数)。

比如求45和30的最小公倍数。

45=3*3*5

30=2*3*5

不同的质因数是2,3,5。3是他们两者都有的质因数,由于45有两个3,30只有一个3,所以计算最小公倍数的时候乘两个3.

最小公倍数等于2*3*3*5=90

又如计算36和270的最小公倍数

36=2*2*3*3

270=2*3*3*3*5

不同的质因数是5。2这个质因数在36中比较多,为两个,所以乘两次;3这个质因数在270个比较多,为三个,所以乘三次。

最小公倍数等于2*2*3*3*3*5=540

20和40的最小公倍数是40

(2)公式法

由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(a,b)×[a,b]=a×b。所以,求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用上述公式求出它们的最小公倍数。

例如,求[18,20],即得[18,20]=18×20÷(18,20)=18×20÷2=180。求几个自然数的最小公倍数,可以先求出其中两个数的最小公倍数,再求这个最小公倍数与第三个数的最小公倍数,依次求下去,直到最后一个为止。最后所得的那个最小公倍数,就是所求的几个数的最小公倍数。输入两个正整数m和n,求其最大公约数和最小公倍数。

1.程序分析:利用辗除法。

2.程序源代码:

main()

int a,b,num1,num2,temp;

printf("please input two numbers:\n");

scanf("%d,%d",&num1,&num2);

if(num1

{ temp=num1;

num1=num2;

num2=temp;

a=num1;b=num2;

while(b!=0)/*利用辗除法,直到b为0为止*/

temp=a%b;

a=b;

b=temp;

printf("gongyueshu:%d\n",a);

printf("gongbeishu:%d\n",num1*num2/a);

}#include

int gcd(int a, int b)

int r = 0;// remainder

int q;// quotient

int d;

d = (a >= b ? a : b);

if (d == a)

q = b;

else

q = a;

printf("d: %d\t q: %d\n", d, q);

do {

r = d % q ;

if (r == 0)

break;

d = q;

q = r;

} while (r != 0);

printf("d: %d\t q: %d\n", d, q);

return q;

int lcm(int a, int b)

if (a != 0 && b != 0)

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

千航国际
国际空运
国际海运
国际快递
跨境铁路
多式联运
起始地 目的地 45+ 100 300 详情
深圳 迪拜 30 25 20 详情
广州 南非 26 22 16 详情
上海 巴西 37 28 23 详情
宁波 欧洲 37 27 23 详情
香港 南亚 30 27 25 详情

在线咨询-给我们留言