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

2024-11-23 04:42:39
推荐回答(5个)
回答1:

一般,欲求最小公倍数,先求最大公约数。输入/输出部分你自己写了,这里只是简单用C语言表示使用欧几里德算法:gcd(a,b) = gcd(b,a mod b)进行计算的部分。理解这个算法是关键,可以参考网络上的相关解释或者相关书籍上的解释。 输入部分/* input */略。 处理部分先求最大公约数,用递归形式表示欧几里德算法。如果理解了算法,看上去是非常舒服(简单)的。/* greatest common divisor */int gcd(int a, int b){ return b == 0 ? ( a : gcd(a%b));} 通过最大公约数,再求最小公倍数。/* least common multiple */int lcm(int a, int b) { return a * b / gcd (a, b);} 输出部分/*output*/略。

回答2:

#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; } }

回答3:

#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:

n你自己写基本框架吧:输入两个正整数 a,bint c=max(a,b);do{if(c%b&&c%a)break;c++;}while(c);printf("%d",c);

回答5:

#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;
}