【算法积累】辗转相除法

【算法积累】辗转相除法,python实现两种

  • 辗转相除法(又称欧几里得算法)
  • 减法(不常用)
      • 代码实现
      • 执行结果
    • 辗转相除法
      • 代码实现
      • 执行结果

辗转相除法(又称欧几里得算法)

又称欧几里得算法,是一种用于求两个整数最大公约数的算法

在辗转相除法中分为使用除法运算和使用减法运算两种方法。

减法(不常用)

在这里插入图片描述

代码实现

a = int(input("第一个数字:"))
b = int(input("第二个数字:"))while a!=b:           # a不等于b   比如(a=42,b=12)if a > b:         # 判断a>b    a=a-b         # a=30 此时 a还是>b 一直减到a=6elif b>a:b=b-a         # 现在b>a b=12-6 =6# else不用写了,此时a=b了 跳出循环了# 上面的数字反过来也一样print("a和b的最大公约数:" ,a) # a和b相等了,输出谁都行

执行结果

C:\Users\Administrator>python xianyujiang.py
第一个数字:42
第二个数字:12
a和b的最大公约数: 6C:\Users\Administrator>python xianyujiang.py
第一个数字:22
第二个数字:42
a和b的最大公约数: 2C:\Users\Administrator>python caishuzi.py
第一个数字:4141241
第二个数字:4235235
a和b的最大公约数: 1C:\Users\Administrator>python caishuzi.py
第一个数字:3241512
第二个数字:5213152
a和b的最大公约数: 8C:\Users\Administrator>python xianyujiang.py
第一个数字:24
第二个数字:24
a和b的最大公约数: 24

辗转相除法

辗转相除法的基本思想是:用较大的数除以较小的数,然后用除数与余数再做同样的运算,直到余数为0为止,此时的除数就是两个数的最大公约数。

辗转相除法的步骤如下:

  1. 如果一个数能被另一个数整除,那么它们的最大公约数就是被除数。

  2. 如果一个数不能被另一个数整除,那么用被除数除以除数,得到的商就是新的被除数,余数就是新的除数。

  3. 重复上述步骤,直到余数为0,此时的除数就是最大公约数。

代码实现

a = int(input("第一个数字:"))
b = int(input("第二个数字:"))
m = max(a, b)            # 
n = min(a, b)
r = m % n
while r != 0:m = nn = rr = m % n
print(num1, "和", num2, "的最大公约数为", n)

执行结果

C:\Users\Administrator>python xianyujiang.py
第一个数字:20
第二个数字:40
2040 的最大公约数为 20C:\Users\Administrator>python xianyujiang.py
第一个数字:12
第二个数字:42
1242 的最大公约数为 6

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

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

相关文章

使用helm部署clickhouse

(作者:陈玓玏) 前置条件 已安装 Kubernetes 集群; 已安装 Helm 包管理工具。 部署 1 添加 RadonDB ClickHouse 的 Helm 仓库 helm repo add ck https://radondb.github.io/radondb-clickhouse-kubernetes/ helm repo upd…

【算法设计】实验四回溯算法(附源代码)

这里写目录标题 一、上机目的二、上机内容与要求三、上机步骤四、上机结果1、将课本5.2节算法改为程序,并输入数据及进行测试;2、自学5.4节,并完成符号三角形问题。 一、上机目的 1、通过回溯法的示例程序理解回溯法的基本思想; …

信号处理-探索相邻数据点之间的变化和关联性的操作方法

当前值减去前一个值,乘上当前值与前一个值差值的绝对值 当前值减去后一个值,乘上当前值与后一个值差值的绝对值。 意义何在? 当前值减去前一个值:表示当前数据点与前一个数据点之间的变化量。当前值与前一个值差值的绝对值&…

Pycharm的Project Structure (项目结构)

文章目录 一、Sources二、Tests三、Exeluded四、Namespace packages五、Templates六、Resources 一、Sources 源代码根目录:包含项目的主要源代码,它会在这个目录下搜索代码,然后自动补全和只能提示都通过这里的代码提供。若项目运行自定义代…

luatos框架中LVGL如何使用中文字体〈二〉编写脚本设置中文字体

本节内容,将和大家一同学习,在luatos环境中,使用lvgl库,一步步的编译固件、编写脚本,最终实现中文字体的显示。 芯片:AIR101 LCD屏:ST7789 上一节,我们一同学习了,硬件引…

使用vue动态在列表中添加或者删除某一行

** 使用vue动态在列表中添加或者删除某一行 ** 先看一下展示的效果&#xff1a; 好了上代码&#xff1a; 样式界面&#xff1a; <template><div class"container"><h4 style"margin-left: 20px;">线路停靠站站点</h4><el-b…

无缝集成 MongoDB Relational Migrator,Tapdata 提供关系型到 MongoDB 实时迁移优化方案

在去年的 MongoDB 用户大会纽约站上&#xff0c;MongoDB 正式宣布全面推出新工具 MongoDB Relational Migrator&#xff08;MongoDB RM&#xff09;&#xff0c;用以简化应用程序迁移和转换——即从传统关系型数据模型到现代的文档数据模型&#xff0c;助力组织快速提升运营效率…

数字图像处理 使用C#进行图像处理九 实现傅里叶变换

一、简述 傅立叶变换将图像分解为其正弦和余弦分量。换句话说,它将图像从空间域变换到频率域。这个想法是任何函数都可以用无限正弦函数和余弦函数之和来精确近似。傅里叶变换是实现此目的的一种方法。 网上有很多关于傅里叶变换的文章,这里就不进行赘述了,这里主要结合代码…

java中xml概述

1.xml 1.1概述【理解】 万维网联盟(W3C) 万维网联盟(W3C)创建于1994年&#xff0c;又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。 建立者&#xff1a; Tim Berners-Lee (蒂姆伯纳斯李)。 是Web技术领域最具权威和影响力的国际中立性技术标准机构。 到目前为…

element ui 中文离线文档(百度云盘下载)

一般内网开发上不了网&#xff0c;用离线版本比较方便&#xff0c;下载地址&#xff1a; https://download.csdn.net/download/li836779537/88355878?spm1001.2014.3001.5503 下载后里面有个 index.hrml 双击打开就可以用 效果如下&#xff1a;

Python程序设计基础——代码习题

1 __name__属性 import demodef main():if __name__ __main__:print(这个程序被直接运行。)elif __name__demo:print(这个程序作为模块被使用。) main()3.3 编写程序&#xff0c;生成包含1000个0~100之间的随机整数&#xff0c;并统计每个元素出现的次数。 import randomx[r…

助贷系统crm:帮助助贷机构实现高效的客户关系管理

助贷系统CRM&#xff08;客户关系管理系统&#xff09;是一种能够帮助助贷企业实现高效客户关系管理的工具&#xff0c;通过助贷系统CRM&#xff0c;助贷企业可以更好地管理企业客户信息&#xff0c;跟踪客户互动、提高客户满意度&#xff0c;从而促进业务增长。 1. 客户信息集…

vMware WorkStation创建虚拟机安装CentOS7,NAT模式配置网络

一、安装虚拟机 1、选择典型&#xff08;推荐&#xff09;配置 2、选择稍后安装操作系统 3、操作系统选择CentOS7 64位 4、虚拟机命名、选择安装位置 6、指定磁盘容量 7、指定磁盘容量 步骤&#xff1a; &#xff08;1&#xff09;、系统内存2GB &#xff08;2&#xff09;、…

linux-MDK can电机带导轨

确保接线正确&#xff0c;这个带导轨的电机需要24V的电压 $ ls /dev //查看端口是什么$ sudo slcand -o -s6 /dev/ttyACM0 can0 //将端口封装为can0 $ sudo ip link set can0 up //打开端口 按照电机说明书&#xff0c;按照需要的指令计算检验和&#xf…

FreeRTOS 的任务挂起和恢复

1. 任务挂起和恢复的 API 函数 API函数描述vTaskSuspend()挂起任务vTaskResume()恢复被挂起的任务xTaskResumeFromISR()在中断中恢复被挂起的任务 挂起&#xff1a;挂起任务类似暂停&#xff0c;可恢复&#xff1b; 删除任务&#xff0c;堆栈都给释放掉了&#xff0c;无法恢复…

计算机网络-第7章 网络安全(2)

7.5 密钥分配 7.6 互联网使用的安全协议 7.7 系统安全&#xff1a;防火墙与入侵检测

【故障电弧探测器 方案介绍】安科瑞电气火灾监控系统

什么是电弧&#xff1f; 电弧俗称‘电火花’ &#xff0c;又叫‘打火’ &#xff0c;本质是一种绝缘体被电压击穿后&#xff0c;由不导电变的导电&#xff0c;且发光发热的自然现象。 什么是故障电弧&#xff1f; 由于电气线路或设备中绝缘老化破损、电气连接松动、空气潮湿…

SpringCloud Hystrix 断路器

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第五篇&#xff0c;即介绍 Hystrix 断路器。 二、概述 2.1 分布式系统面临的问题 复杂分布式体系结构中…

TIOBE 3月编程排行榜出炉:遥遥领先,霸榜第一!

哈喽呀~又到了每个月的语言排行榜啦&#xff01; TIOBE 3月编程语言也已经公布&#xff0c;具体有啥新变化呢&#xff1f;快和我一起往下看~ Python遥遥领先&#xff0c;霸榜第一 先来看看本月排行榜top5的表现。毫无疑问&#xff0c;Python依然遥遥领先&#xff1a; Python 第…

RabbitMQ学习笔记——消息转化器

消息转化器的问题&#xff0c;如果我们发送方发送的数据为引用类型的对象&#xff0c;默认使用的是JDK内部自带的ObjectOutputStream进行对象序列化和反序列化&#xff0c;这样做比较复杂并且不安全。 我们可以引入Jackson来做对象的序列化&#xff0c;可将默认的JDK消息转化器…