请问用java如何求两个数的最小公倍数,谢谢

david_yan 2003-07-12 03:10:04
谢谢
...全文
856 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
WYlslrt 2003-07-13
  • 打赏
  • 举报
回复
if(a>b)
{
if(a%b!=0)
{
for(i=1;i<=b;i++)
{
if((a*i)%b=0) num=a*i; break;
}
else num=a;
}
else if(a<b){ 代码同上一块相似}
else num=a

LeeMaRS 2003-07-12
  • 打赏
  • 举报
回复
用模比较快, 我测试过的.
xiaoyi20 2003-07-12
  • 打赏
  • 举报
回复
同意dawnhorizon(竹林)的观点,
可以先求两个数(a,b)的最大公约数D,然后用(a*b)/D就可以了.
关于最大公约数我罗嗦一下:
两个正整数A,B的最大公约数hcf在数学中的定义为
A 当A=B
hcf(A,B)={ hcf(A-B,B)当A>B
hcf(B,A) 当A<B
所以我们可以写出下面的伪代码:
置A1=A
置B1=B
当A1!=B1 执行下面的任务
IF A1>B1 THEN
置A1为A1-B1 (PS:A1=A1-P1)
ELSE
置B1为B1-A1
END IF
任务结束
打印 A1

我觉得做加减法应该会比乘除法来得快.

klbt 2003-07-12
  • 打赏
  • 举报
回复
辗转相除法效率最高。
BlueSky2008 2003-07-12
  • 打赏
  • 举报
回复
贴个c++的:
fn(int m,int n){
for(int r = m; 0 != r % n ; r+=m);
return r;
}
dawnhorizon 2003-07-12
  • 打赏
  • 举报
回复
语言重要么?
可以先求两个数(a,b)的最大公约数D,然后用(a*b)/D就可以了.
最大公约数的求法,有不少,一种就是辗转相除,用得出的余数做除数,原来的除数做被除数,直到不能整除为止..

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧