当前位置: 代码迷 >> C语言 >> 望老鸟赐教
  详细解决方案

望老鸟赐教

热度:96   发布时间:2004-11-10 21:49:00.0
望老鸟赐教

main()

{int a,b,n1,n2,t;

scanf("%d%d",&n1,&n2);

if(n1<n2)

{t=n1;n1=n2;n2=t;

}

a=n1; b=n2;

while(b!=0)

{t=a%b;

a=b;

b=t; }

printf("a=%d\n",a);

printf("%d\n",n1*n2/a);

getch();

printf("************\n");

}

这个求最大公约数和最小公倍数的算法是怎么一回事呀??

望老鸟不吝赐教。


----------------解决方案--------------------------------------------------------

展转相除法

发明人: 欧几里得

例题:求M和N的最大公约数;(假设M 是大数)

一:先求出 M N 中较大者;

二:大数除以小数;若能除尽 小数就为他们的最大公约数;如里不是请看下面;

三:将原来小数大数用; 那M/N 的余数作小数;返回第二步;

四:直到大数除以小数除尽;


----------------解决方案--------------------------------------------------------

谢谢了 小心

可是这种算法只能求最大公约数么?

哎!!只能羡慕发明者的脑袋了,呵呵


----------------解决方案--------------------------------------------------------
  相关解决方案