求最大公约数和最小公倍数,若实在不理解则带入数字实验一下比如6和9,在while处i=9,j=6(i必为9,为大数)一次循环后y=3
而i=6,j=3此时y=0,j=0时循环结束,此时输出最大公约数i。最小公倍数为i和j的原值除以最大公约数。
#include <stdio.h>
int main()
{
int i,j,temp,y,s;
scanf("%d%d",&i,&j);
if(i==0||j==0)
{
printf("您输入错误,请重新输入!");
}
else
{
int b=i*j;
if(i<j)
{
temp=j;
j=i;
i=temp;
}
while(j!=0)
{
y=i%j;
i=j;
j=y;
}
printf("最大公约数为:%d\n",i);
s=b/i;
printf("最小公倍数为:%d",s);
}
return 0;
}