一起talk C栗子吧(第九回:C语言实例--最大公约数)
各位看官们,大家好,从今天开始,我们讲大型章回体科技小说 :C栗子,也就是C语言实例。闲话休提, 言归正转。让我们一起talk C栗子吧!
看官们,上一回中咱们说的是素数的例子,这一回咱们说的例子是:最大公约数。
看官们,最大公约数也叫最大公因数。两个整数中的公约数有好几个,这些公约数中最大的一个就叫作最 大公约数。当然了,这是数学中的一个概念,如果不明白了,可以查阅相关的数学知识。
最大公约数的求法有好几种,最常用的是辗转相除法,也叫欧几里德算法。该算法的原理如下:
- 如果正整数a除以正整数b所得的余数为c,那么a和b的最大公约数与b和c的最大公约数相等。
- 重复步骤1中的操作,继续求b和c的最大公约数。如此反复,直到余数等于0为止。
看官们,详细的代码如下,请大家参考
1 /* **************************
2 * For Greatest Common Divisor
3 * *************************/
4 #include<stdio.h>
5
6 int main()
7 {
8 int a,b,gcd,temp,ta,tb;
9 int mod;
10 a = b = gcd = temp = ta = tb = mod = 0;
11
12 printf("Please input 2 number for get the GCD of them .\n");
13 scanf("%d %d",&a,&b);
14 if(a <0 || b < 0)
15 {
16 printf("bad input number \n");
17 return 0;
18 }
19
20 if(a < b)
21 {
22 temp = a;
23 a = b;
24 b = temp;
25 }
26
27 ta = a;
28 tb = b;
29 mod= a % b;
30 while(mod != 0)
31 {
32 ta = tb;
33 tb = mod;
34 mod = ta % tb;
35 }
36
37 printf("the GCD of %d and %d is:%d \n",a,b,tb);
38
39 return 0;
40 }
41
各位看官,关于最大公约数的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解。
上一篇: 第八回:C语言实...
下一篇: 第十回:C语言实...