好文档 - 专业文书写作范文服务资料分享网站

最 小 公 倍 数 算 法 分 析( 2 0 2 0)

天下 分享 时间: 加入收藏 我要投稿 点赞

C语言求最小公倍数和最大公约数三种算法(经典)----ACM

【导师实战追-女孩资-源】【Q/Q:⒈016.x.⒐52б】 求最小公倍数算法:

最小公倍数=两整数的乘积÷最大公约数 求最大公约数算法: (1)辗转相除法 有两整数a和b: ① a%b得余数c

② 若c=0,则b即为两数的最大公约数 ③ 若c≠0,则a=b,b=c,再回去执行① 例如求27和15的最大公约数过程为:

27÷15 余1215÷12余312÷3余0因此,3即为最大公约数 1 #includestdio.h

2 int main() -* 辗转相除法求最大公约数 *- 4 int m, n, a, b, t, c;

5 printf(\ 6 scanf(\ 7 m=a; n=b;

8 while(b!=0) -* 余数不为0,继续相除,直到余数为0 *- 9 { c=a%b; a=b; b=c;}

10 printf(\

11 printf(\提供一种简写的方式: 1 int gcd(int a,int b) 3 return b==0?a:gcd(b,a%b); ⑵ 相减法 有两整数a和b: ① 若ab,则a=a-b ② 若ab,则b=b-a

③ 若a=b,则a(或b)即为两数的最大公约数 ④ 若a≠b,则再回去执行①

例如求27和15的最大公约数过程为: 27-15=12( 1512 ) 15-12=3( 123 ) 12-3=9( 93 ) 9-3=6( 63 ) 6-3=3( 3==3 ) 因此,3即为最大公约数 1 #includestdio.h

2 int main ( ) -* 相减法求最大公约数 *- 4 int m, n, a, b, c;

5 printf(\ 6 scanf (\

7 -* a, b不相等,大数减小数,直到相等为止。*- 8 while ( a!=b)

9 if (ab) a=a-b; 10 else b=b-a;

11 printf(\12 printf(\⑶穷举法 有两整数a和b:

② 若a,b能同时被i整除,则t=i ④ 若 i = a(或b),则再回去执行②

⑤ 若 i a(或b),则t即为最大公约数,结束 ① i= a(或b)

② 若a,b能同时被i整除,则i即为最大公约数, ③ i--,再回去执行② 有两整数a和b:

② 若a,b能同时被i整除,则t=i ④ 若 i = a(或b),则再回去执行②

⑤ 若 i a(或b),则t即为最大公约数,结束 ① i= a(或b)

② 若a,b能同时被i整除,则i即为最大公约数, ③ i--,再回去执行② 1 #includestdio.h

2 int main () -* 穷举法求最大公约数 *- 4 int m, n, a, b, i, t;

5 printf(\ 6 scanf (\ 7 for (i=1; i= a; i++) 8 if ( a%i == 0 b%i ==0 ) t=i;

9 printf(\10 printf(\12 -* 改进后的

13 for (t= a; t0; t-- )

14 if ( a%t == 0 b%t ==0 ) break; 1 --穷举法求最小公倍数 2 for (i= a; ; i++ )

3 if ( i % a == 0 i % b ==0 ) break;

4 printf(\ 6 --多个数的最大公约数和最小公倍数 7 for (i= a; i0; i-- )

8 if (a%i==0b%i==0c%i==0) break;

9 printf(\10 for (i= a; ; i++ )

11 if (i%a==0i%b==0i% c==0) break;

12 printf(\?printf(\

iLen = max(iLen, divide(a,iTimeArr,iPrimeArr,iPrimeLen));

2 int main ( ) -* 相减法求最大公约数 -

11 printf(\printf(\console.log(smallestCommons([23, 18])); this.minMulti = this._getMinMulti()

最大公约数和最小公倍数算法是数学界经典的算法之一。其中主要是西方的欧几米德算法(辗转相除法)和东方的《九章算术》更相减损法。在计算机界也有着广泛用法。本文主要是用java实现递归和循环方式来实现两种算法,至于原理性的文章请参照百度百科即可。

最 小 公 倍 数 算 法 分 析( 2 0 2 0)

C语言求最小公倍数和最大公约数三种算法(经典)----ACM【导师实战追-女孩资-源】【Q/Q:⒈016.x.⒐52б】求最小公倍数算法:最小公倍数=两整数的乘积÷最大公约数求最大公约数算法:(1)辗转相除法有两整数a和b:①a%b得余数c②若c=0,则b即为两数的最大公约数③若c≠0,则a=b,b=c,再回去执行①例如求2
推荐度:
点击下载文档文档为doc格式
3tlxr71ria4g4gh0kzl91od1e2lmz900xvv
领取福利

微信扫码领取福利

微信扫码分享