最大公因数采取“倒叙”的思路;最大公倍数采取“正叙”的思路。
#include <stdio.h>
void main()
{
int w,x,y,z,i,j;
int min(x,y);
int max(x,y);
scanf("%d%d",&x,&y);
if (x <= 0 || y <= 0)
{
printf("请重新输入: \n");
scanf("%d%d",&x,&y);
}
//求最大公因数
z = min(x,y);
for (i=z;;i--)
{
if ((x%i==0) && (y%i==0))
{
printf("%d和%d的最大公因数为: %d\n",x,y,i);
break;
}
}
//求最小公倍数
w = max(x,y);
for (j=w;;j++)
{
if ((j%x==0) && (j%y==0))
{
printf("%d和%d的最小公倍数为: %d\n",x,y,j);
break;
}
}
}
int min(int x, int y)
{
int z;
if (x<y)
{
z = x;
}
else
{
z = y;
}
return (z);
}
int max(int x, int y)
{
int z;
if (x<y)
{
z = y;
}
else
{
z = x;
}
return (z);
}