搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机
打印 上一主题 下一主题

最小公倍数怎么求

[复制链接]
查看: 25|回复: 0

1万

主题

1万

帖子

4万

积分

论坛元老

Rank: 8Rank: 8

积分
48091
跳转到指定楼层
楼主
发表于 2025-7-14 16:33:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
两个数的最小公倍数用算法怎么算
int MaxAB(int a,int b)
if(a>b && !a%b || a==b)return a;
if(a
//先求最大公约数
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)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 超星学习通-超星网络学生登录入口-超星官网网页版登录入口-超星尔雅 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表