C语言从键盘输入两个正整数m和n,求最大公约数和最小公倍数

如题所述

第1个回答  2007-03-03
#include <stdio.h>

main()
{
int m, n, r, b; /* r是最大公约数, b 是最大公倍数 */
scanf( "%d,%d",&m,&n ); /* 从键盘读取 */
b = m-1;
r = m+1;

while( 1 ) /* 找最大公约数 */
{
--r;
if( !m%r && !n%r ) break;
}

while( 1 ) /* 找最小公倍数 */
{
++b;
if( !b%m && !b%n ) break;
}

printf("%d,%d",r,b); /* 输出结果 */
}
第2个回答  2013-04-09
main()
{
int x,y,a,m,n,t;
printf("please input two num x,y\n");
scanf("%d,%d",&x,&y);
for(a=x<y?x:y;a>0;a--)
if(x%a==0&&y%a==0)
{
printf("x,y的最大公约数是 %d\n",a);
break;
}
m=x/a;
n=y/a;
t=a*m*n;
printf("x,y的最小公倍数是 %d\n",t);
}
第3个回答  2007-03-03
#include <stdio.h>

void main()
{
int m,n,r,x;
scanf("%d,%d",&m,&n);
x=m*n;
while(n!=0)
{
r=m%n;
m=n;
n=r;
}
printf("%d %d\n",m,x/m);
}本回答被提问者和网友采纳
相似回答