永发信息网

C语言:输入两个整数m和n,求它们的最大公约数和最小公倍数。

答案:3  悬赏:70  手机版
解决时间 2021-11-08 15:18
  • 提问者网友:夢醒日落
  • 2021-11-08 04:42
C语言:输入两个整数m和n,求它们的最大公约数和最小公倍数。
最佳答案
  • 五星知识达人网友:迷人又混蛋
  • 2021-11-08 05:06
两个非零整数的最大公约数就是它们绝对值的最大公约数,最小公倍数是它们的积除以最大公约数
#include
#include
int f(int a,int b)
{
int r;
r = a % b;
while(r != 0)
{
a = b;
b = r;
r = a % b;
}
return b;
}
int main()
{
int a, b, r1;
scanf("%d %d", &a, &b);
a=abs(a);
b=abs(b);
r1 = f(a, b);
printf("%d\n",r1); //输出最大公约数
printf("%d\n",a*b/r1); //输出最小公倍数
return 0;
}
全部回答
  • 1楼网友:野慌
  • 2021-11-08 06:35
#include

int GCD(int a,int b)
{
int r;
r = a % b;
while(r != 0)
{
a = b;
b = r;
r = a % b;
}
return b;
}
int main()
{
int a, b, gcd;
scanf("%i%i", &a, &b);
gcd = GCD(a, b);
printf("gcd = %i",gcd);
return 0;
}
  • 2楼网友:十鸦
  • 2021-11-08 05:14
#include
main(){
long int a,b,d;
long int m,n,i,j;
double c,h;
c=1;
scanf("%ld%ld",&m,&n);
if(m>=n){
b=m;
d=n;
}else{b=n;d=m;}
for(i=1;i<=(b/2);i++){
if((m%i==0) && (n%i==0) && (m%n!=0) && (n%m!=0)){
c=c*i;
}else{if(b%d==0){c=d;}}

}
h=(m*n/c);
printf("%.0lf %.0lf",c,h);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯