题目:输入两个整数,输出其最大公约数和最小公倍数。
第一种方法:
#include<stdio.h>
void main()
{
int x,i,y,t;
scanf("%d %d",&x,&y);
t=x<y?x:y;
for(i=t;i>0;i--)
{
if((x%i==0)&&(y%i==0))
{printf("最大公约数%d\n",i);
break;
}
}
t=x>y?x:y;
for(i=t;;i++)
{
if((i%x==0)&&(i%y==0))
{printf("最小公倍数%d\n",i);
break;
}
}
}
第二种方法(辗转相除法):
#include<stdio.h>
void main()
{
int x,i,y,t;
scanf("%d %d",&x,&y);
i=x*y;
if(y>x)
{
t=y;
y=x;
x=t;
}
while(t=x%y)
{
x=y;
y=t;
}
printf("最大公因数为%d\n",y);
t=i/y;
printf("最小公倍数%d\n",t);
}