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

简介: 把以前写的一些经验总结汇个总,方便给未来的学弟学妹们做个参考!                                                                                                                       ...

把以前写的一些经验总结汇个总,方便给未来的学弟学妹们做个参考!                                                                                                                                                   

                                                                                                                                                                                                                                                                       --------------------------永远爱你们的:Sakura

最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,其中一个最小的公倍数是他们的最小公倍数,同样地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接

求最小公倍数算法

最小公倍数=两整数的乘积÷最大公约数

求最大公约数算法

(1)辗转相除法

有两整数ab

a%b得余数c

c=0,则b即为两数的最大公约数

③ 若c≠0,则a=bb=c,再回去执行①

例如求2715的最大公约数过程为:

27÷15 1215÷12312÷30因此,3即为最大公约数

 

 1 #include<stdio.h>
 2 int main()   /*  辗转相除法求最大公约数 */ 
 3 { 
 4    int m, n, a, b, t, c;
 5    printf("Input two integer numbers:\n");
 6    scanf("%d%d", &a, &b);
 7    m=a;   n=b;
 8    while(b!=0)  /* 余数不为0,继续相除,直到余数为0 */ 
 9    { c=a%b; a=b;  b=c;}
10    printf("The largest common divisor:%d\n", a);
11    printf("The least common multiple:%d\n", m*n/a);
12 }

提供一种简写的方式:

 

1 int gcd(int a,int b)
2 {
3    return b==0?a:gcd(b,a%b);
4 }

 

 

 

⑵ 相减法

有两整数a和b:

① 若a>b,则a=a-b

② 若a<b,则b=b-a

③ 若a=b,则a(或b)即为两数的最大公约数

④ 若a≠b,则再回去执行①

例如求27和15的最大公约数过程为:

27-15=12( 15>12 ) 15-12=3( 12>3 )

12-3=9( 9>3 ) 9-3=6( 6>3 )

6-3=3( 3==3 )

因此,3即为最大公约数

 1 #include<stdio.h>
 2 int main ( )  /* 相减法求最大公约数 */
 3 {  
 4    int m, n, a, b, c;
 5   
目录
相关文章
|
29天前
|
自然语言处理 算法 搜索推荐
C语言中谈论算法
C语言中谈论算法
10 0
C语言中谈论算法
|
1月前
|
算法 搜索推荐 C语言
C语言的算法
C语言的算法
17 0
|
1月前
|
自然语言处理 算法 搜索推荐
C语言用伪代码表示算法
C语言用伪代码表示算法
25 0
|
1月前
|
算法 C语言
C语言求最大公约数
C语言求最大公约数
|
16天前
|
算法 C语言
【算法与数据结构】 C语言实现单链表队列详解2
【算法与数据结构】 C语言实现单链表队列详解
|
16天前
|
存储 算法 C语言
【算法与数据结构】 C语言实现单链表队列详解1
【算法与数据结构】 C语言实现单链表队列详解
|
1月前
|
C语言
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
27 0
|
1月前
|
算法 数据处理 C语言
C语言核心之一的算法结构
C语言核心之一的算法结构
13 1
|
1月前
|
算法 搜索推荐 C语言
C语言的算法
C语言的算法
14 1
|
1月前
|
搜索推荐 算法 C语言
C语言实现冒泡排序算法
C语言实现冒泡排序算法
18 0