int max(int x,int y)
{
if(x & gt;=y)
返回x;
其他
返回y;
}
int min(int p,int q)
{
如果(p & gt=q)
返回q;
其他
返回p;
}
int main()
{
int m,n,a,c,x,y;//添加兩個變量,X和y。
printf("輸入兩個整數:\ n ");
scanf("%d%d ",& ampm & amp;n);
c = m * n;
如果(m==n)
{
Printf("兩者的最大公約數為%d,最小公倍數為%d\n ",m,m);
}
如果(m & gtn)
{
a = m-n;
while(a & gt;0)//改變原程序的m和n值,導致無限循環。
{
x = m;
y = n;
m=max(x-y,y);
n=min(x-y,y);
a = m-n;
}
Printf("兩者的最大公約數為%d,最小公倍數為%d\n ",m,c/m);
}
如果(m & ltn)
{
a = n-m;
while(a & gt;0)//改變原程序的m和n值,導致無限循環。
{
x = m;
y = n;
n=max(x,y-x);
m=min(x,y-x);
a = n-m;
}
Printf("兩者的最大公約數為%d,最小公倍數為%d\n ",n,c/n);
}
返回0;
}