求解:求两个正整数m和n的最大公约数和最小公倍数。
【输入/输出示例】
77,112↙
gcd=7,lcm=1232
这样做输出不正确,请问问题出在哪,谢谢
#include
int main(void)
{
int m,n,gcd,lcm,r,a,b,max;
scanf("%d,%d",&m,&n);
a=m;b=n;
if(n>m)
max=n;n=m;m=max;
while(m%n==r)
{
m=n;
n=r;
}
lcm=(a*b)/n;
printf("gcd=%d,lcm=%d\n",n,lcm);
return 0;
}
题主你好,我基于你写的代码改写了一份C语言版的:
#include<stdio.h>
int main() {
int m, n, gcd, lcm, r, a, b;
scanf("%d,%d", &m, &n);
a=m;
b=n;
while (b > 0) {
r = a % b;
a = b;
b = r;
}
gcd = a;
lcm = (m * n) / gcd;
printf("gcd=%d,lcm=%d\n", gcd, lcm);
return 0;
}
如果我的回答对你有帮助,还望采纳!
m%n=r,r没有值,没有初始化,代码就有错误了