当前位置: 首页 > news >正文

最大公约数和最小公倍数

最大公约数:

概念:

公约数中最大的称为最大公约数。 对任意的若干个正整数,1总是它们的公因数。 公约数与公倍数相反,就是既是A的约数同时也是B的约数的数,12和15的公约数有1,3,最大公约数就是3。

代码思路:

采取辗转相除法——如果 a 和 b 是两个正整数,且 a>b ,则a和b的最⼤公约数等于 b 和 a%b ( a 除以 b 所得的余数)的最⼤公约数。

通过辗转相除法的原理,我们可以明白,在此处可能需要使用while的循环进行运算。

而循环的条件则是进入循环的二者能够进行完全的整除,那么便得到了最大公约数。

代码展示:

#include <stdio.h>
int main()
{int m = 0;int n = 0;scanf("%d %d", &m, &n);//18 24//辗转相除法int k = 0;//当n不能整除m,即k≠0,更新两个最值重复步骤计算n与m%n的最⼤公约数while (k = m % n){m = n;n = k;}printf("%d\n", n);return 0;
}

最小公倍数:

概念:

指在两个或两个以上的自然数中,如果它们有相同的倍数,这些倍数就是它们的公倍数,其中除0以外最小的一个公倍数,叫做这几个数的最小公倍数。

代码思路:

可以利用最小公倍数和最大公约数之间的关系——最⼩公倍数可以由两数乘积除以两数的最⼤公约数求得。

因此,我们可以先使用辗转相除法求出最大公约数,在将两个数相乘,得到的积在除取最大公约数,因此得到最小公倍数。

代码演示:

#include <stdio.h>
int main()
{int m = 0;int n = 0;//输⼊scanf("%d %d", &m, &n);//18 24int k = 0;int mul = m*n;//辗转相除法求得最⼤公约数while (k = m % n){m = n;n = k;}printf("%d\n", mul/n);return 0;
}

http://www.lryc.cn/news/135470.html

相关文章:

  • 数据结构——二叉搜索树(附带C++实现版本)
  • C++(3)C++对C的扩展Extension
  • 在vscode(idea)使用GitHub账号、Copilot异常
  • 新的后端渲染:服务器驱动UI
  • Postman如何做接口自动化测试?
  • excel文本函数篇2
  • 【MyBatis】动态SQL > 重点:${...}和#{...}与resultMap和resultType的区别
  • 什么是BEM命名规范?为什么要使用BEM命名规范?
  • JavaScript:交集和差集的应用场景
  • 达梦数据库表空间创建和管理
  • 三、MySQL 数据库安装集
  • 【BASH】回顾与知识点梳理(三十九)
  • 蓝蓝设计-UI设计公司案例-HMI列车监控系统界面设计解决方案
  • Blazor前后端框架Known-V1.2.13
  • vue 复制文本
  • 西瓜书第三章
  • 关于python如何使用sqlalchemy连接sap_hana数据库
  • 微信小程序教学系列(5)
  • 【计算机网络篇】TCP协议
  • Disruptor并发编程框架
  • matlab 点云精配准(1)——point to point ICP(点到点的ICP)
  • 【JVM】运行时数据区域
  • uniapp踩坑合集
  • 再JAVA中如何使用qsort对类进行排序?
  • docker安装clickhouse
  • 解决`idea`中`database`工具查询起别名乱码问题
  • UE4/5Niagara粒子特效之Niagara_Particles官方案例:1.5->2.3
  • Docker 容器数据卷
  • STM32--MPU6050与I2C外设
  • 项目管理实战笔记1:项目管理常识