全国研究院排名:c语言????最大公约数和最小公倍数

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 11:57:28
如何求两个数的最大公约数和最小公倍数??请高手指教.

测试通过

int gy(int x,int y)
{
int i;
for (i=x<y?x:y;i>=1;i--)
{
if (x%i==0 && y%i==0)
break;
}
return i;
}

int gb(int x,int y)
{
int i;
for (i=x>y?x:y;i<=x*y;i++)
{
if (i%x==0 && i%y==0)
break;
}
return i;
}

void main()
{
int x,y;
scanf("%d,%d",&x,&y);
printf("最大公约数:%d\n",gy(x,y));
printf("最小公倍数:%d\n",gb(x,y));
}

用辗转相除的数学思想。
main()
{ int m,n,r; /*r表示余数,设m>n*/
int min,max; /*min表示最小公倍数,max表示最大公约数 */
scanf("%d,%d",&m,&n);
max=m*n;
while(r=m%n)
{m=n;
n=r;

min=r;
max=max/r;
}这是我刚编的一个,你试一试哈