最大公约数:指能够整除多个整数的最大正整数,而多个整数不能都为零。

最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。

求最小公倍数的算法:

最小公倍数 = 两个整数的乘积 / 最大公因数

求最大公约数的算法:

第一种方法:辗转相除法

有两个整数a和b:

1. a % b ==temp;

2. 若temp = 0;那么b就是最大公约数。

3. 若temp ≠ 0;则a = b;b = temp;继续进行a % b 操作。

eg:求25和15的最大公约数,其过程为:

25 % 15 余 10 ; 15 % 10 余 5 ; 10 % 5 余 0 。因此5即为最大公约数

#include<stdio.h>
int main()
{int a  , b  , temp;printf("put in a and b : ");scanf("%d %d",&a,&b);int nul = a * b;while (a * b != 0){temp = a % b;a = b;b = temp;}printf(" max = %d:",a);printf(" min = %d:", (nul / a)  );return 0;
}  
put in a and b : 25 15max = 5: min = 75:

第二种方法:相减法

取两个整数a、b:

1. 若a > b,则 a = a - b;

2. 若a < b,则 b = b - a;

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

4.若 a ≠ b,则继续执行第一步操作。

eg:求25和15的最大公约数,其过程为:

25 - 15 = 10(15 > 10);15 - 10 = 5(10 > 5);

10 - 5 = 5(5 == 5)

因此,25 和15的最大公约数为5。

代码如下:

#include<stdio.h>
int main()
{int a , b , m , n;printf("put in a and b:");scanf("%d %d", &a, &b);m = a;n = b;while (a != b){if(a > b){a = a - b;}else{b = b - a;}}printf("max = %d\n", a);printf("min = %d",(m * n)/a);return 0;
}

运行结果展示:

put in a and b:25 15
max = 5
min = 75

第三种方法:穷举法

有两个整数a和b:

1. 令 i = 1,

2. 如果 a,b能同时被i整除,则h = i;

3. i++;

4. 若 i <= a(b),则继续执行第2步操作;

5. 若i > a(b),当 i = a(b)时,穷举结束,则此时h即为最大公约数。

代码如下

#include<stdio.h>
int main ()
{int a , b , m , n , i , h;printf("put in a and b:");scanf("%d %d", &a, &b);m = a;n = b;for( i = 1; i <= a; i ++){if( a % i == 0 && b % i == 0){h = i;}}printf("max = %d\n", h);printf("min = %d",(m * n) / h);return 0;
}

运行结果展示:

put in a and b:25 15
max = 5
min = 75

C语言 多种方法求最大公因数和最小公倍数相关推荐

  1. c语言,c++求最大公因数与最小公倍数方法集合

    首先要了解,求两个数的最小公倍数只需用两个数的乘积除以最大公因数就可以得到了,所以我们的目标就是找最大公因数 c语言 第一种方法用辗转相除法: 辗转相除法, 又名欧几里德算法(Euclidean al ...

  2. C语言求最大公因数与最小公倍数

    1辗转相除法求最大公因数余最小公倍数 辗转相除法是利用以下性质来确定两个正整数 a 和 b 的最大公因子的: ⒈ 令r为a/b所得余数(0≤r) 若 r= 0,算法结束:b 即为答案. ⒉ 互换:置 ...

  3. 【君义精讲】多种方法求斐波那契数列

    概念 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列&q ...

  4. 编程笔试(解析及代码实现):多种方法求所有小于n的质数的个数

    编程笔试(解析及代码实现):多种方法求所有小于n的质数的个数 目录 题目描述 代码实现 题目描述 多种方法求所有小于n的质数的个数 T1.穷举法:根据定义循环判断该数除以比他小的每个自然数(大于1), ...

  5. 用C语言实现求最大公因数和最小公倍数

    用C语言实现最大公因数和最小公倍数 一.方法论最大 公因数和最小公倍数 求两个数最大公因数 eg:18 24 18的因数 1 2 3 6 9 18 24的因数 1 2 3 4 6 8 12 24 求法 ...

  6. c语言求最大公因数和最小公倍数

    一.用辗转相除法求最大公因数 辗转相除: 假如需要求 1997 和 615 两个正整数的最大公约数,进行过程如下: 1997 / 615 = 3 (余152) 615 / 152 = 4(余7) 15 ...

  7. 用多种方法求最大公倍数和最小公因数的java代码

    用三种方法求两个数的最大公因数和最小公倍数,求三个数的最大公因数和最小公倍数 该程序的代码为: package A; import java.util.Arrays; import java.util ...

  8. 怎么求最大公因数和最小公倍数

    设有a,b两数,求他们的最大公因数和最小公倍数 公式:最大公因数 =  a * b / 最小公倍数 = 两数之积除以最小公倍数. #include "iostream" //voi ...

  9. 求最大公因数与最小公倍数

    求a与b的最大公因数与最小公倍数 求最大公因数: 辗转相除法,欧几里得算法 //辗转相除法 long long gcd(long long a, long long b){long long aa = ...

最新文章

  1. 一个伪黑客的成功的秘密1:tomcat入侵
  2. [转:Pro ASP.NET MVC 5中的例子]使用MVC4,Ninject,EF,Moq,构建一个真实的应用电子商务SportsStore...
  3. 深入浅出统计学 第四五章 离散概率的计算与分布
  4. 怎么判断有几个滴定突跃点_不懂怎么判断相亲男的人品?聊这几个话题,让你一眼道破...
  5. 笔记-信息化与系统集成技术-信息的质量属性
  6. c语言程序设保安值班,保安值班系统
  7. 2021.NET Conf China上的GraphQL
  8. Activemq Jms 简单示例
  9. 为什么能上QQ而不能上网
  10. 电脑罗盘时钟代码_轻松吃透实时时钟芯片DS1302软硬件设计
  11. bundle adjustment原理(1)
  12. mcgs组态软件中字体如果从左到右变化_MCGS全中文组态软件常见问题
  13. win10系统从旧固态迁移到新固态,win10系统迁移到固态硬盘ssd
  14. 索尼a7c语言没有英语,索尼A7C的三大优点和缺点,看完再决定要不要买
  15. 【图灵学院】JAVA互联网架构【全】
  16. sql之conver函数的使用
  17. php字面量,浅谈js之字面量、对象字面量的访问、关键字in的用法
  18. 科力锐助力政务云统一灾备中心建设
  19. PC微信3.3.0内测版(新增朋友圈功能)
  20. 一位博士在华为的22年 | 职业生涯奋斗之路

热门文章

  1. 相声评书戏曲大全(安卓)
  2. 雅思口语怎么备考?哪里有免费的题库?
  3. 腾讯会议看不到别人的共享屏幕,共享屏幕是黑色解决方法
  4. 【C语言上机练习题目-代码+运行结果】
  5. 北京市海外学人中心《北京市留学人员工作居住证》攻略
  6. Web安全测试:使用火狐浏览器修改请求参数
  7. Photoshop CS6 Extended 特别版特点介绍
  8. 服务器端部署营业执照识别
  9. MAC下格式化移动硬盘
  10. Cutting Game