怎么算两数的公倍数?请大家帮忙

chenandxi 2005-11-13 06:33:17
我想用FOR循环实现
可是FOR里不能用浮点数..算出来是错的

大家的意见呢 ?
...全文
248 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_Yang 2005-11-18
  • 打赏
  • 举报
回复
同意2楼的。
daylove 2005-11-16
  • 打赏
  • 举报
回复
可是FOR里不能用浮点数
============================
可以阿?!

如果整数的话,一句话:
for(k=m; k%n; k+=m);

效率不一定高,赫赫。
x86 2005-11-15
  • 打赏
  • 举报
回复
用m*n在除以最大公约数。
但是最大公约数可以不用除法计算。
先求每个书的约数,再求最大公约数。
约数可以这样求:
int k=0;
int s = sqrt(m);
int list[s];
for(i=2;i<s;i++) {
for(j=i;j<(m+1)/i;j++) {
if(i*j == m) {
list[k++] = i*j;
}
}
}
//算法细节可能有些问题,但大致是这样
guruv 2005-11-15
  • 打赏
  • 举报
回复
//辗转相除法求最大公约数

#include "iostream.h"
int zg(int m,int n)
{
int r;
while(n!=0)
{
r=m%n;
m=n;
n=r;
}
return m;

}
int main()
{
int a,b,c;
cout<<"求最大公约数和最小公倍数,请输入两个整数:";
cin>>a>>b;
//if(a>b)
c=zg(a,b);
// else
// c=zg(b,a);

cout<<a<<"和"<<b<<"的最大公约数是:"<<c<<"."<<endl;
cout<<"*************************************"<<endl;
cout<<a<<"和"<<b<<"的最小公倍数是:"<<a*b/c<<"."<<endl;

return 0;


}
kzzk 2005-11-14
  • 打赏
  • 举报
回复
aiya 最大公约数的启求法我也忘记了
xkst 2005-11-13
  • 打赏
  • 举报
回复
将m,n辗转相除,得到最大公约数,用m*n除以最大公约数即为最小公倍数
colorslife 2005-11-13
  • 打赏
  • 举报
回复
求m,n最小公倍数?
将m,n辗转相除,得到最大公约数,用m*n除以最大公约数即为最小公倍数
----

我也这样研究过,是可行的
wind_sunshine 2005-11-13
  • 打赏
  • 举报
回复
2楼的方法绝对可行~
csucdl 2005-11-13
  • 打赏
  • 举报
回复
以上方法是否可行?
chenandxi 2005-11-13
  • 打赏
  • 举报
回复
谢谢你们
bensin 2005-11-13
  • 打赏
  • 举报
回复
呵呵 ..好强的一个逻辑啊...
gumbour 2005-11-13
  • 打赏
  • 举报
回复
楼上正解
senkiner 2005-11-13
  • 打赏
  • 举报
回复
求m,n最小公倍数?
将m,n辗转相除,得到最大公约数,用m*n除以最大公约数即为最小公倍数

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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