算法--最大公约数,最小公倍数

devtools/2025/1/11 17:52:16/

1. 求两个数的最大公约数,最小公倍数

解释:这里Mymin和Mymax函数是自定义用于获取两数最大值和最小值的

求最大公约数的时候只需要得到两数之中最小的一项,向下逐个判断直到等于1

求最小公倍数的时候只需要得到两数之中最大的一项,向上判断直到两数乘积即可

#include<iostream>
using namespace std;
int Mymin(int x,int y)
{if (x > y)return y;else return x;
}
int Mymax(int x, int y)
{if (x > y)return x;else return y;
}int GCD(int x, int y)
{int _min=Mymin(x, y);for (int i = _min; i >= 1; i--){if (x % i == 0 && y % i == 0){return i;}}
}
int LCM(int x, int y)
{int _max = Mymax(x, y);for (int i = _max;i<=x*y; i++){if (i % x == 0 && i % y == 0){return i;break;}}
}

2. 当然这是最复杂的办法,那么有没有简单一点的办法来求最大公约数和最小公倍数呢?

当然有,我们可以用辗转相除法来求最大公约数

最小公倍数可以通过公式:两数乘积/两数的最大公约数 得到

辗转相除法图示:

int GCD1(int x, int y)
{while (y){int z = x % y;x = y;y = z;}return x;int LCM1(int x, int y)
{return x * y / GCD1(x, y);
}

3. 我们已经直到如何求两个数的最大公约数,最小公倍数了,现在我们可以求出三个数或者更多数的最大公约数和最小公倍数吗?

如下所示,我们可以先求两个数的最大公约数或最小公倍数,然后再求第三个数的和前两个数的最大公约数或者最小公倍数的最大公约数或最小公倍数

int LCM2(int x, int y, int z)
{return LCM1(LCM1(x, y), z);
}
int GCD2(int x, int y, int z)
{return GCD1(GCD1(x, y), z);
}

本文仅阐述函数写法,主函数调用均省略。


http://www.ppmy.cn/devtools/149672.html

相关文章

人工智能计算机视觉学习路线——从基础到深度探索

目录 引言&#xff1a;人工智能与计算机视觉的未来计算机视觉的基础学习路线 基础理论与数学知识编程语言与工具深度学习与计算机视觉 卷积神经网络&#xff08;CNN&#xff09;原理计算机视觉中的深度学习应用进阶领域与前沿技术 目标检测与语义分割GAN与生成模型博雅智信辅导…

uniapp 的uni.getRecorderManager() 录音功能小记

官网上明确说的是全局唯一并且只是获取对象&#xff0c;所以会导致一个问题就是&#xff0c;当你多个页面要用到这个对象的时候&#xff0c;会发现 onStop 方法会被覆盖&#xff0c;导致调用结果不是自己想要的 解决办法也简单粗暴&#xff0c;在需要用到的界面重新覆盖onStop…

排序算法 C语言

一、冒泡排序 1、实现原理&#xff1a;两两比相邻元素&#xff0c;如果它们的顺序错误就把它们交换过来&#xff0c;小的在前&#xff0c;大的在后。遍历数列的工作是重复进行的&#xff0c;直到没有再需要交换的元素为止。 #include <stdio.h> #include <string.h&…

在Mac上使用 Docker 构建一个 noVNC 环境并运行 MyCobot

本文展示了Mycobot 280 M5 上的 Mycobot 280 M5 moveit2 模拟环境&#xff0c;以及详细介绍了使用 Docker 在 macOS&#xff08;arm64&#xff09;上构建 moveit2 环境的步骤。 一、引言 这篇文章主要内容是关于如何在 Ros2 环境中构建在 Mac 上模拟 Mycobot 280 M5 的环境。 …

有机物谱图信息的速查技巧有哪些?

谱图信息是化学家解读分子世界的“语言”&#xff0c;它们在化学研究的各个领域都发挥着不可或缺的作用。它们是理解和确定分子结构的关键&#xff0c;对化学家来说极为重要&#xff0c;每一种谱学技术都提供了不同的视角来观察分子&#xff0c;从而揭示其独特的化学和物理特性…

人机交互复习笔记

好像后天上午就要考试了。白天要做智能小车的实验&#xff0c;还有今天&#xff0c;明天晚上两晚上的时间复习这个考试。和很多朋友聊了一下这个考试&#xff0c;大家都感觉比较随缘。因为好像没有什么计算题&#xff0c;也没有什么题库。简单的很日常&#xff0c;复杂的太学术…

OpenCV的对比度受限的自适应直方图均衡化算法

OpenCV的对比度受限的自适应直方图均衡化&#xff08;CLAHE&#xff09;算法是一种图像增强技术&#xff0c;旨在改善图像的局部对比度&#xff0c;同时避免噪声的过度放大。以下是CLAHE算法的原理、步骤以及示例代码。 1 原理 CLAHE是自适应直方图均衡化&#xff08;AHE&…

SpringBoot项目分离与分层方式之容器化部署

SpringBoot项目分离与分层方式之容器化部署 文章目录 1.前言2.deom项目工程结构3.分离容器部署3.1父工程pom3.2子模块3的Dockerfile3.3子模块3的target3.4构建启动docker命令 4.分层容器部署4.1父工程pom4.2子模块3的Dockerfile4.3子模块3的target4.4构建启动docker命令 5.jeki…