欧几里得算法求解最大公约数(附代码实现,习题练习)

1.公约数、最大公约数的定义

  • 公约数,亦称“公因数”。它是指能同时整除几个整数的数 。
  • 如果一个整数同时是几个整数的约数,称这个整数为它们的“公约数”。
  • 公约数中最大的称为最大公约数。
  • 对任意的若干个正整数,1总是它们的公因数。
  • eg.30和40,它们的公约数有1,2,5,10,最大公约数是10。

Tips:任何数和 0 的最大公约数都是自身。


2.欧几里得算法实现步骤

最大公约数(Greatest Common Divisor, GCD)

  • 设两个整数 ab,其中 a >= b。它们的最大公约数 gcd(a, b)可以通过以下步骤求解:
    • 首先计算 a 除以 b 的余数,记作 r = a % b
    • r 等于 0,则 gcd(a, b) = b
    • r 不等于 0,则继续用 (b, r) 替代 (a, b),重复上述步骤,直到余数 r 等于 0。

时间复杂度 O(log(min(a, b)))


3.示例

gcd(a,b)=gcd(b,a%b)

计算 gcd(48, 18)

  • 初始调用gcd(48, 18)
  • 第一步:计算余数 48 % 18 = 12,得到 gcd(18, 12)
  • 第二步:计算余数 18 % 12 = 6,得到 gcd(12, 6)
  • 第三步:计算余数 12 % 6 = 0,此时 r = 0,返回 b = 6

所以,gcd(48, 18) = 6


4.实操练习

1979.找出数组的最大公约数

在这里插入图片描述

2427.公因子的数目

在这里插入图片描述


5.几种GCD代码实现

 private int gcd(int a, int b) {while (a != 0) {int tmp = a;a = b % a;b = tmp;}return b;}
 private int gcd(int a, int b) {return b == 0 ? a : gcd(b, a % b);}
public int gcd(int x,int y){if(y==0){return x;}return gcd(y,x%y);}

证明就算啦~ 脑壳疼23333

实在理解不了的小伙伴 记住gcd(a,b)=gcd(b,a%b)

做题的时候会用就行~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序常用的api(2)

动画API 创建实例 wx.createAnimation() 作用:用于在微信小程序中完成动画效果的制作 动画的常用属性 duration 【number型】 动画持续时间,单位毫秒,默认400毫秒 timingFunction 【string型】 动画效果 默认linear delay 【number型】 动…

C++回溯算法(2)

棋盘问题 #include<bits/stdc.h> using namespace std; void func(int,int); bool tf(int,int); void c(); int n,k; char a[110][110]; int cnt20; int main() {cin>>n>>k;for(int i0;i<n;i){for(int j0;j<n;j){cin>>a[i][j];}}func(0,0);cout…

交易账户实现多人下单 分仓系统 交易外接 多指令管理

交易账户实现多人下单 分仓系统 交易外接 多指令管理 指令管家下载&#xff1a;https://raw.githubusercontent.com/LeoGQ/quant/main/CommandKeeper/%E6%8C%87%E4%BB%A4%E7%AE%A1%E5%AE%B6.zip 或项目地址&#xff1a;https://github.com/LeoGQ/quant/tree/main/CommandKeeper…

在国内默默无闻的.NET,在国外火的超乎想象?

.NET开篇概述 在编程语言的竞技场上&#xff0c;.NET似乎在国内并未获得与其实力相匹配的名声&#xff0c;相较于Java和Python的广为人知&#xff0c;.NET更像是一位隐匿在幕后的高手。然而&#xff0c;当我们放眼国际&#xff0c;.NET的火爆程度却让人不得不重新审视这位“幕后…

nvm 管理多版本node

因有多个前端项目&#xff0c;不同项目使用的node版本不一样&#xff0c;所以在本地使用nvm管理不同的node版本。 一、安装nvm 1&#xff09;nvm理解 nvm全英文也叫node.js version management&#xff0c;是一个nodejs的版本管理工具。nvm和n都是node.js版本管理工具&#xff…

minIo ubuntu单节点部署

资源准备 minio二进制包 下载地址:https://dl.min.io/server/minio/release/linux-amd64/minio ubuntu-单节点部署 选择一台ubuntu18.04机器10.253.9.41、intel 或者 amd 64位处理器 上传minio到~目录 sudo cp minio /usr/local/bin/ sudo chmod x /usr/local/bin/minio 设…

2024MathorCup A题 赛后思路代码分享(分赛区一等奖)移动通信网络中 PCI 规划问题

今年突然变成分赛区 (10%) 推国&#xff0c;国奖结果还没出&#xff0c;感觉一等&#xff08;2%&#xff09;有点悬&#xff0c;论文写的太一般了我没时间去修。 4 月不务正业又被拉着打了次比赛&#xff0c;刚好这几天有闲暇&#xff0c;传一下之前写的解题思路&#xff0c;不…

PHP面试必会的20个问题

PHP是什么&#xff0c;它的全称是什么&#xff1f; PHP是一种服务器端脚本语言&#xff0c;主要用于Web开发。它的全称是Hypertext Preprocessor&#xff08;超文本预处理器&#xff09;&#xff0c;由Rasmus Lerdorf在1994年首次创建。PHP可以嵌入到HTML中&#xff0c;用于生成…

文本预处理1--去除#和句号之间内容

1.针对文本里特定两个符号之间内容的中文进行去除&#xff0c;本次选取#和句号之间的内容进行去除。 2.大家可以根据自己的实际需求修改代码实现自己的文本内容的整理。 3.下面是去除#和句号之间内容的python代码&#xff1a;其中读取的是txt文本&#xff0c;处理后的内容写回…

超声波清洗机哪家好用又实惠?四款亲测表现出色超声波清洗机安利

在当今社会&#xff0c;随着生活节奏的加快&#xff0c;年轻人越来越多地依赖眼镜来纠正视力或保护眼睛。无论是为了时尚搭配&#xff0c;还是因为长时间面对电脑和手机屏幕导致的视力问题&#xff0c;眼镜已经成为许多年轻人日常生活中不可或缺的配件。然而&#xff0c;就在我…

Python3 模块

在前面的几个章节中我们基本上是用 python 解释器来编程&#xff0c;如果你从 Python 解释器退出再进入&#xff0c;那么你定义的所有的方法和变量就都消失了。 为此 Python 提供了一个办法&#xff0c;把这些定义存放在文件中&#xff0c;为一些脚本或者交互式的解释器实例使…

Linux驱动开发(二)--字符设备驱动开发提升 LED驱动开发实验

1、地址映射 在编写驱动之前&#xff0c;需要知道MMU&#xff0c;也就是内存管理单元&#xff0c;在老版本的 Linux 中要求处理器必须有 MMU&#xff0c;但是现在Linux 内核已经支持无 MMU 的处理器了。 MMU的功能如下&#xff1a; 完成虚拟空间到物理空间的映射 内存保护&…

上海亚商投顾:创业板指低开低走 先进封装概念午后走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日缩量震荡调整&#xff0c;深成指、创业板指跌超1%。车路云概念延续强势&#xff0c;长江通信4连板&am…

【实用性很强的重要注解记录】

1、SpringCloud相关注解 (1)ReflushScope 外部配置修改后&#xff0c;例如nacos配置被修改&#xff0c;就能以热更新的形式加载配置&#xff0c;无需重启即可生效。该注解不能单独使用&#xff0c;需要和Controller&#xff0c;Service&#xff0c;Component&#xff0c;Repos…

Python 包 dhg 中超图的数据格式

目录 1 dhg 介绍2 超图数据3 总结4 参考 1 dhg 介绍 下面是官方介绍 DHG (DeepHypergraph) 是基于 PyTorch 的深度学习包&#xff0c; 可用于图神经网络以及超图神经网络。 其支持从 顶点到顶点、从一个域的顶点到另一个域的顶点、 从顶点到超边,、从超边到顶点、从顶点集到顶点…

PFA托盘400*300*42mm耐酸碱透明聚四氟乙烯方盘方槽耐高温厂家供

PFA方盘又称托盘&#xff1a;耐高温、耐腐蚀。 进口透明可溶性聚四氟乙烯方盘。可应用于成膜实验&#xff0c;样品液体脱漏等。能放在电热板上直接加热使用&#xff0c;也可以用于烘箱烘干&#xff0c;实验室腐蚀性样品的转移和搬运&#xff0c;防止腐蚀性液体洒落。 产品特性…

C语言入门系列:数据类型之字面量类型

文章目录 一&#xff0c;什么是字面量二&#xff0c;字面量为什么需要类型&#xff1f;三&#xff0c;变量类型和字面量类型的区别1&#xff0c;作用不同2&#xff0c;方式不同 四&#xff0c;编译器如何推断字面量类型1&#xff0c;整数2&#xff0c;浮点数3&#xff0c;字面量…

React常见面试题(2024最新版)

创建项目 npx create-react-app my-app启动项目 npm start目录结构 目录/文件名描述README.md项目的自述文件node_modules/项目依赖包存放目录package.json包管理配置文件,记录项目信息和依赖package-lock.json锁定依赖版本,确保跨环境一致性public/公共资源目录public/ind…

aspice认证是什么?

ASPICE认证是汽车软件过程改进及能力评定模型框架&#xff0c;用于评价软件开发团队的研发能力水平。 &#xff08;要明确的是&#xff1a;在ASPICE行业中专业来说&#xff0c;ASPICE项目是没有认证&#xff0c;而只有评估。不过&#xff0c;为了方便沟通&#xff0c;人们常将…

PHP框架之Yii框架

Yii框架详细说明 Yii框架是一个基于组件的高性能PHP框架&#xff0c;用于开发大型Web应用。Yii框架由薛强创立&#xff0c;自2008年1月1日开始开发&#xff0c;至今已成为PHP开发领域的佼佼者之一。Yii框架以其高效、安全、灵活和可扩展的特性&#xff0c;赢得了众多开发者的青…