更相减损术求最大公约数

简介: 更相减损术求最大公约数

1.定义


更相减损术是出自《九章算术》的一种求最大公约数的算法,它原本是为约分而设计的,但它适用于任何需要求最大公约数的场合。

原文是:

可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。


白话文译文:

(如果需要对分数进行约分,那么)可以折半的话,就折半(也就是用2来约分)。如果不可以折半的话,那么就比较分母和分子的大小,用大数减去小数,互相减来减去,一直到减数与差相等为止,用这个相等的数字来约分。


2.步骤


第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;若不是则执行第二步。

第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止。

则第一步中约掉的若干个2的积与第二步中等数的乘积就是所求的最大公约数

其中所说的“等数”,就是公约数。求“等数”的办法是“更相减损”法。


3.例子


3.1 例1 求6和3的最大公约数:

(1)由于3不是偶数,所以执行第二步

(2)6-3=3,3=3,减数与差相等,即3为6和3的最大公约数


3.2 例2 求98和64的最大公约数:

(1)98和64是偶数,所以用2约简得:49和32。49不是偶数,所以执行第二步。

(2)49-32=17,17<32;

32-17=15,15<17;

17-15=2,2<15;

15-2=13;13>2;

13-2=11,11>2;

11-2=9,9>2;

9-2=7,7>2;

7-2=5,5>2;

5-2=3,3>2;

3-2=1,1<2;

2-1=1,1=1,结束

所以98和64的最大公约数为2*1=2

相关文章
|
前端开发 JavaScript 算法
轻松实现数字格式化:JavaScript 中的千分位分隔技巧大揭秘
轻松实现数字格式化:JavaScript 中的千分位分隔技巧大揭秘
1042 0
|
Java p3c 开发者
阿里java开发规范学习(附P3C IDEA插件 帮助规范的养成)
浅析 阿里巴巴 Java 开发规约 (未完成) contents 为什么要学 编程规约 P3C IDEA 插件 why-use 我们知道,一般稍微大一点的公司,都会在系统架构设计完成之后,编码工作开始之前,给出一份属于自家公司,或是自家团队给出的编码规范文...
5622 0
|
4月前
|
人工智能 边缘计算 自然语言处理
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐
随着模型量化技术的发展,大语言模型(LLM)如今可在低配置设备上高效运行。本文介绍本地部署LLM的核心技术、主流工具及十大轻量级模型,探讨如何在8GB内存环境下实现高性能AI推理,涵盖数据隐私、成本控制与部署灵活性等优势。
2158 0
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐
|
6月前
|
运维 监控 数据可视化
一文详解:工业软件“低代码开发平台”技术架构研究与分析
本文围绕工业软件低代码开发平台的机遇与挑战,提出基于自动化引擎的技术架构,由工具链、引擎库、模型库、组件库、工业数据网关和应用门户组成。文章分析了其在快速开发、传统系统升级中的应用模式及价值,如缩短创新周期、降低试错成本、解决资源缺乏和提升创新可复制性,为我国工业软件产业发展提供参考和支持。
|
存储 数据管理 jenkins
自动化测试框架的搭建与实践
【8月更文挑战第3天】随着软件行业的迅猛发展,自动化测试已成为保证软件质量的重要手段。本文将介绍如何搭建一个高效的自动化测试框架,并通过实际代码示例展示其应用。我们将探讨框架设计的核心原则、工具选择和脚本编写的最佳实践,以及如何通过持续集成实现自动化测试流程的优化。
276 1
|
JavaScript 前端开发 API
【独家揭秘】如何从零开始,用Vue.js打造你的专属电商平台?
【8月更文挑战第30天】本教程将指导你使用Vue.js及其生态,包括Element UI,从零开始构建一个具备首页、商品列表、详情页、购物车及登录注册功能的基础电商平台前端。通过实践,你不仅将学会构建完整的Web应用,还将掌握Vue.js的高级特性和多种实用插件的使用方法,逐步提升应用的功能并优化用户体验。
416 0
|
数据可视化 vr&ar Python
时间序列分析技巧(二):ARIMA模型建模步骤总结
时间序列分析技巧(二):ARIMA模型建模步骤总结
|
数据采集 人工智能 大数据
bi系统
bi系统
723 0
|
JavaScript API
uniapp自定义导航栏方法
uniapp自定义导航栏方法
1159 0
|
开发框架 前端开发 JavaScript
BootstrapBlazor企业级组件库:前端开发的革新之路
BootstrapBlazor企业级组件库:前端开发的革新之路
411 0