我用的是两个数相减的那种方式
#include<stdio.h>
void main()
{
int max,min,k,j,num;
printf("输入两个数,以空格分开:");
scanf("%d%d",&k,&j);
if(k==j)
printf("最大公约数:%d 最小公倍数:%d",k,k);
else
{
if(k>j)
{
max=k;
min=j;
}
else
{
max=j;
min=k;
}
do
{
num=max-min;
if(num==min)
break;
max=(min>num)?min:num;
min=(min>num)?num:min;
}while(1);
printf("最大公约数:%d 最小公倍数:%d",num,k*j/num);
}
getchar();
getchar();
}