方法1:暴力求解

最大公约数:

是比这两个数小于等于的数,那么先假设最大公约数是这两个数中较小的, 然后用两个数对假设的这个最大公约数去求余,没有余数则假设的数就是最大公约数;有余数则对假设的这个数去减1,再去求余,直到没有余数为止,那么那个数就是最大公约数

最小公倍数:

是比这两个数大于等于的数,那么先假设是最小公倍数这两个数中较大的, 然后用假设的数对两个数去求余,没有余数则假设的数就是最小公倍数;有余数则对假设的这个数去加1,再去求余,直到没有余数为止,那么那个数就是最小公倍数

代码如下:

//最大公约数#include<stdio.h>
int main()
{int a = 0, b = 0;scanf("%d %d", &a, &b);int min = (a < b) ? a : b;while(1){if (a % min == 0 && b % min == 0){printf("%d", min);break;}else{min--;}}return 0;
}
//最小公倍数#include<stdio.h>
int main()
{int a = 0, b = 0;scanf("%d %d", &a, &b);int max = (a > b) ? a : b;while(1){if (max % a == 0 && max % b == 0){printf("%d", max);break;}else{max++;}}return 0;
}

方法2:效率更高的辗转相除法(这里只是简单介绍一下)

最大公约数:

用两个数中的个对一个求余,没有余数,则最大公约数就是除数;有余数则将除数的值赋给被除数,余数的值赋给除数,继续求余,以此类推,直到没有余数,那么除数就是最大公约数。

最小公倍数:

两个数的乘积除以最大公约数就是最小公倍数

图片解释

代码如下:

#include<stdio.h>
int main()
{int a = 0;int b = 0;int c = 0;scanf("%d %d", &a, &b);int m = a*b;while (c = a % b){a = b;b = c;}printf("最大公因数:%d\n", b);printf("最小公倍数:%d\n", m/b);return 0;
}

再来介绍一下新学习的求最小公倍数的方法,个人认为简单且代码效率高

两个数a  b 的最小公倍数m一定满足m=a*i=b*j;这样只要找到a*i%b==0或b*j%a==0的这个数,这个数就是最小公倍数

代码如下:

#include<stdio.h>
int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);int i = 1;while (1){if (a * i % b == 0){break;}else{i++;}}printf("%d\n", a * i);return 0;
}

求两个数的最大公约数和最小公倍数相关推荐

  1. 百度web前端面试题之求两个数的最大公约数和最小公倍数

    求两个数的最大公约数和最小公倍数,好像是第三题, 找到如下简洁写法: <1> 用辗转相除法求最大公约数 算法描述: m对n求余传给自己,再次求余, 若余数等于0 则 n 为最大公约数 &l ...

  2. 求两个数的最小公约数和最小公倍数

    题目: 求两个数的最小公约数和最小公倍数 思路: 求最大公约数: 欧几里得在其<几何原本>中提出的欧几里得算法,有称辗转相除法,  具体做法是如果q和r分别是m除以n的商及玉树,m=nq+ ...

  3. 编写两个函数分别求两个数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个数由键盘输入。 输入输出格式示例: 输入:24 16 输出:zdgys=8,zxgbs=48

    编写两个函数分别求两个数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个数由键盘输入. 输入输出格式示例: 输入:24 16 输出:zdgys=8,zxgbs=48 #include ...

  4. php怎么求最小公倍数,C++_详解C语言求两个数的最大公约数及最小公倍数的方法,求两个正整数的最大公约数nbs - phpStudy...

    详解C语言求两个数的最大公约数及最小公倍数的方法 求两个正整数的最大公约数 思路:这是一个很基本的问题,最常见的就是两种方法,辗转相除法和辗转相减法.通式分别为 f(x, y) = f(y, x%y) ...

  5. c语言用迭代法求最大公约数,用迭代法求两个数的最大公约数和最小公倍数

    c语言论文 用迭代法求两个数的最大公约数和最小公倍数 化工09110605 摘要:迭代法是一种循环控制语句和循环结构程序的设计方法.在计算机解决问 题的时候,总希望从复杂的问题中找到规律,并归结为简单 ...

  6. 【经典100题】 题目16 求两个数的最大公约数和最小公倍数

    题目 求两个数的最大公约数和最小公倍数. 最大公约数:指两个或多个整数共有约数中最大的一个 最小公倍数:指两个或多个整数共有倍数中最小的一个 说明:自己没有搞清楚最大公约数和最小公倍数的定义,结果走了 ...

  7. python编写函数、计算三个数的最大公约数_python 函数求两个数的最大公约数和最小公倍数...

    1. 求最小公倍数的算法: 最小公倍数 = 两个整数的乘积 / 最大公约数 所以我们首先要求出两个整数的最大公约数, 求两个数的最大公约数思路如下: 2. 求最大公约数算法: 1. 整数A对整数B进行 ...

  8. Java求两个数的最大公约数及最小公倍数、求多个数的最大公约数及最小公倍数

    今天参加腾讯笔试,做编程题时在最小公倍数.最大公约数这些这么简单的知识点上卡壳了,自信心受到强烈的打击,下来后猛复习了这方面的相关编程知识. 有以下几个关键点: 1.任意正整数的最大公约数.最小公倍数 ...

  9. 算法:求两个数的最大公约数与最小公倍数的方法

    1.计算两个整数的最大公约数方法有两种 第一种是使用<九章算术>中的更相减损术方法,"以少减多,更相减损,求其等也,以等数约之,等数约之,即除也,其所以相减者皆等数之重叠,故以等 ...

  10. html 计算两数之和,百度web前端面试题之求两个数的最大公约数和最小公倍数

    求两览页些求时是过解些这确如目前例总站回广随个数的最大公约数和最小公倍数,好是能览调不页新代些事几求事都时学下是事功过发,解像是第三题, 找到如下简洁遇新是直朋能到分览写法: <1> 用辗 ...

最新文章

  1. Samba如何配置共享资源
  2. 面试题:mysql 表删除一半数据,B+树索引文件会不会变小???
  3. pandas中dataframe索引排序实战:pandas中dataframe索引降序排序、pandas中dataframe索引升序排序
  4. (转)JS之——解决IE6、7、8使用JSON.stringify报JSON未定义错误的问题
  5. Ssh+Mysql实现的Java Web图书商城
  6. 2011 ACM 0和1思想
  7. SQL67 牛客每个人最近的登录日期(二)
  8. 队列Q----双数组下标查找
  9. 海康威视ip摄像头通过网线直接连接笔记本电脑使用
  10. Java随机数的创建
  11. 供应链库存管理-供应链库存案例分析
  12. 配电网自动化课程复习总结
  13. 初中计算机软件课后反思,信息技术的教学反思
  14. windows下hadoop安装时出现error Couldn‘t find a package.json file in “D:\\hadoop\hadoop-2.7.7\\sbin“问题
  15. 计算机网络 | 构造超网 | CIDR
  16. 和月薪5W的华为程序员聊过后,才知道自己一直在打杂...
  17. Tita 如何支持企业完成 360 环评
  18. vue项目运行报错Refused to load the image 'http://localhost:8080/favicon.ico' because it violates the follo
  19. BP神经网络南瓜价格相关性研究与价格预测模型设计
  20. 打鸟Style 经典游戏再现

热门文章

  1. 10分钟快速搭建多方视频会议系统
  2. 为什么台湾的Yahoo!叫奇摩 ?
  3. C艹入门 -> 入土
  4. 这7个摄影构图技巧,可能会帮你拍出好看照片!你学会了吗?
  5. 编码器/译码器(Verilog HDL)|计算机组成
  6. Flutter圆形图片
  7. php 加减法,php加减法
  8. 每个 gopher 都需要了解的 Go AST
  9. 容斥原理(转载http://www.cppblog.com/vici/archive/2011/09/05/155103.html)
  10. Response.AddHeader 参数