永发信息网

急求用 c语言编写一个程序求两个数的最小公倍数,越简单越好。

答案:5  悬赏:0  手机版
解决时间 2021-04-04 18:53
  • 提问者网友:几叶到寒
  • 2021-04-04 01:03
急求用 c语言编写一个程序求两个数的最小公倍数,越简单越好。
最佳答案
  • 五星知识达人网友:玩世
  • 2021-04-04 02:15
#include
int main(){
int i,j,m,n,t;
scanf("%d%d",&m,&n);
i=m,j=n;
if(mwhile(m%n!=0){
t=m%n,m=n,n=t;
}
m=i*j/n;
printf("%d\n",m);
return 0;
}
全部回答
  • 1楼网友:封刀令
  • 2021-04-04 05:01
一般,欲求最小公倍数,先求最大公约数。输入/输出部分你自己写了,这里只是简单用C语言表示使用欧几里德算法:gcd(a,b) = gcd(b,a mod b)进行计算的部分。理解这个算法是关键,可以参考网络上的相关解释或者相关书籍上的解释。 输入部分略。 处理部分先求最大公约数,用递归形式表示欧几里德算法。如果理解了算法,看上去是非常舒服(简单)的。int gcd(int a, int b){ return b == 0 ? ( a : gcd(a%b));} 通过最大公约数,再求最小公倍数。int lcm(int a, int b) { return a * b / gcd (a, b);} 输出部分略。
  • 2楼网友:老鼠爱大米
  • 2021-04-04 04:33
n你自己写基本框架吧:输入两个正整数 a,bint c=max(a,b);do{if(c%b&&c%a)break;c++;}while(c);printf("%d",c);
  • 3楼网友:举杯邀酒敬孤独
  • 2021-04-04 03:48
#include
int main(){
int i,j,m,n,t;
scanf("%d%d",&m,&n);
if(m{t=m,m=n,n=t;}
while(m!=0){
t=m%n;m=n;n=t;
}
m=i*j/n;
printf("%d\n",m);
return 0;
}
  • 4楼网友:酒醒三更
  • 2021-04-04 03:14
#include void main(){ int n,i,m,a,b,c,y,x,z; x=1; scanf("%d",&n); for(i=1;i<=n;i++) {scanf("%d%d",&a,&b);
y=a*b;
for(z=2;z<=a&&z<=b;z++)
{ if(a%z==0&&b%z==0)
{ x=x*z; a=a/z; b=b/z; z=z-1;} } printf("%d\n",y/x); x=1; } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯