如何用while求解:输入两个正整数m,n,求其最大公约数和最小公倍数

主要是用循环语句,如何做
2025-06-20 08:28:43
推荐回答(2个)
回答1:

#include
void main( )
{
int p,r,n,m,temp;
printf("请输入两个正整数:");
scanf("%d,%d",&n,&m);
if(n {
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数为:%d\n",n);
printf("它们的最小公倍数为:%d\n",p/n);
}

回答2:

C语言吗?

求最大公约数x:
x=m>n?n:m;
while(m%x || n%x) x--;

求最小公倍数x:
x=m>n?m:n;
while(x%m || x%n) x++;