我写了一段代码!写得比较长。
#include <stdio.h>
int main()
{
int a, b, c, d, i, j;
while((scanf("%d%d", &a, &b)) != EOF)
{
c = a > b?b:a;
d = a > b?a:b;
for(i = c;i > 0;i --)
{
if(a%i==0&&b%i==0)
break;
}
for(j = d;j > 0;j ++)
{
if(j%a==0&&j%b==0)
break;
}
printf("%d%4d\n",i ++, j -- );
}
return 0;
}
算法一(辗转相除):
f1(x,y)
{
a=x;b=y;
t=a%b;
if(t!=0)
{
a=b;b=t;t=a%b;
}
printf("%d\n",b); /*最大公约数*/
printf("%d\n",x*y/b); /*最小公倍数*/
}
算法二(辗转相减):
f2(x,y)
{
a=x;b=y;
while(a!=b)
{
if(a>b)
a=a-b;
else
b=b-a;
}
printf("%d\n",a); /*最大公约数*/
printf("%d\n",x*y/a); /*最小公倍数*/
}