更相减损术求最大公约数

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

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

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

相关文章

C++小程序:同一路由器下两台计算机间简单通信(2/2)——客户端

客户端的程序结构前半部分与服务器端基本相同&#xff0c;后半部分也相对简单。相关函数的解释可以参考前文服务器端的内容。有关客户端的内容除个别地方外&#xff0c;就不再做长篇大论的解释。强调一点&#xff0c;如果将此程序移到其它电脑上运行&#xff0c;编译需要releas…

Ciphey无法安装的解决办法

安装过程纯属自己实践&#xff0c;满满干货 困扰我几天的问题终于解决了 我看着教程在window上安装 python3.8/python3.9/python3.10无论如何都安装不上&#xff0c; 在win10虚拟机仍然安装不上 可能是我电脑环境问题 解决办法&#xff1a; 在kali中安装&#xff0c;但是…

18_文件系统的制作-Ramdisk

文件系统的制作(Ramdisk) 本文介绍如何制作文件系统。另外, 由于Busybox 集合了很多工具,编译起来也非常方便。在讲解制作文件系统的时候,也会介绍 busybox 的编译和安装过程;介绍制作文件系统时,会详细介绍 Ramdisk 、 YAFFS2、JFFS2 及其它文件系统的制作。 1. 根文件系…

列表、字典、集合推导式

文章目录 前言1.列表推导式&#xff08;List Comprehension&#xff09;:2 字典推导式&#xff08;Dictionary Comprehension&#xff09;3 集合推导式&#xff08;Set Comprehension) 前言 在Python中&#xff0c;列表、字典、集合推导式是一种便捷的语法&#xff0c;用于根据…

第13节 第二种shellcode编写实战(2)

在第二种shellcode编写实战(1)的基础上&#xff0c;新增加一个CAPI类&#xff0c;将所有用到的函数都在这个类中做动态调用的处理&#xff0c;这样使得整个shellcode功能结构更加清晰。 1. 新建类CAPI&#xff08;即api.h和api.cpp两个文件&#xff09;&#xff1a; api.h&…

#DELPHI BASS库Windows平台下,实时更换输出设备

DELPHI BASS库Windows平台下&#xff0c;实时更换输出设备 #DELPHI BASS库Windows平台下&#xff0c;实时更换输出设备 取自网络&#xff0c;分享&#xff0c;项目嵌入无损音乐播放后&#xff0c;画蛇添足的功能分享&#xff01; 直接贴核心代码&#xff0c;看不明白去看说…

flutter自定义日期选择器按日、按月、自定义开始、结束时间

导入包flutter_datetime_picker: 1.5.0 封装 import package:atui/jade/utils/JadeColors.dart; import package:flutter/cupertino.dart; import package:flutter/material.dart; import package:flutter_datetime_picker/flutter_datetime_picker.dart; import package:flut…

景源畅信电商:经营抖店需要电脑吗?

经营抖店是否需要电脑?这个问题看似简单&#xff0c;实则关乎着商家的运营效率和成本投入。在当前数字化、网络化的商业环境中&#xff0c;电脑已经成为了不可或缺的工具。那么&#xff0c;经营抖店究竟是否需要电脑呢?答案是肯定的。 一、高效处理订单 电脑能够高效地处理大…

Mysql FLOAT和DOUBLE类型区别

存储方式&#xff1a; FLOAT和DOUBLE是浮点数类型&#xff0c;它们以二进制格式存储数值&#xff0c;可以存储近似值。这意味着某些特定的小数值可能无法精确表示&#xff0c;可能会有微小的计算误差。DECIMAL是定点数类型&#xff0c;以字符串形式存储数值&#xff0c;可以存储…

从零学算法2105

2105. 给植物浇水 II Alice 和 Bob 打算给花园里的 n 株植物浇水。植物排成一行&#xff0c;从左到右进行标记&#xff0c;编号从 0 到 n - 1 。其中&#xff0c;第 i 株植物的位置是 x i 。 每一株植物都需要浇特定量的水。Alice 和 Bob 每人有一个水罐&#xff0c;最初是满的…

如何在湖师大官网找到考研真题

今天学弟问我怎么找真题&#xff0c;我必须告诉他怎么找湖师大的真题&#xff0c;身为考研学子&#xff0c;这是必须要知道滴&#xff0c;尤其是自命题&#xff0c;是吧&#xff0c;话不多说&#xff0c;言归正传&#xff0c;我们开始吧&#xff01; 1 打开湖师大官网 什么&a…

树莓派nmap扫描

debian系统安装nmap&#xff1a; sudo apt install nmap安装nmap完成后&#xff0c;输入 ip route 来查看当前Wi-Fi路由器的ip地址。 第一行的default via后显示的便是网关地址&#xff0c;也就是路由器地址。 获取到路由器ip地址后&#xff0c;在终端中输入&#xff1a; …

一站式HMI软件开发套件eStation,让开发更简单高效

4月份举办的北京国际车展上全球首发车117辆&#xff0c;新能源车型278个&#xff0c;越来越多的车厂通过差异化和改善UI/UE体验&#xff0c;来获取更多用户的青睐。为快速响应差异化竞争需求&#xff0c;智能座舱HMI市场遇到以下挑战&#xff1a; 如何兼容不同项目开发人员编程…

C# 使用SendMessage进行进程通信,可发送字符串,结构体

发送时只能以结构体形式发送&#xff0c;类的话会提示“指定结构必须能直接复制到本机结构中&#xff0c;或是具有布局信息 ”的错误提示 以下两种结构体示例都可以被发送 public struct A{public A(int a){name "heow";array new double[3] { 1, 2, 5.6 };}strin…

批量为本地视频生成字幕文件,并可将字幕文件翻译成其它语言

VideoSubtitleGenerator 批量为本地视频生成字幕文件&#xff0c;并可将字幕文件翻译成其它语言 本项目基于 macOS, node 环境运行&#xff0c;暂未兼容 windows 环境 &#x1f310;Github地址 https://github.com/buxuku/VideoSubtitleGenerator 初衷 自己有一大批外文视频&…

力扣例题(用栈实现队列)

目录 链接. - 力扣&#xff08;LeetCode&#xff09; 描述 思路 push pop peek empty 代码 链接. - 力扣&#xff08;LeetCode&#xff09; 描述 思路 push 例如我们将10个元素放入栈中&#xff0c;假设最左边为栈顶&#xff0c;最右侧为栈底 则为10,9,8,7,6,5,4,3,…

嵌入式 - GPIO编程简介

An Introduction to GPIO Programming By Jeff Tranter Wednesday, June 12, 2019 编者按&#xff1a;本 2019 年博客系列是 ICS 最受欢迎的系列之一&#xff0c;现已更新&#xff08;2022 年 12 月&#xff09;&#xff0c;以确保内容仍然准确、相关和有用。 本博客是 Integr…

实体类和Entity Class之间有什么联系

实体类&#xff08;Entity Class&#xff09;和Entity Class在本质上是相同的&#xff0c;它们都是面向对象编程&#xff08;OOP&#xff09;中用于表示具有业务逻辑意义的实体的类。 具体来说&#xff0c;实体类通常被设计用于代表真实世界中的对象或概念&#xff0c;这些对象…

PWRWER

编译烧录完代码之后&#xff0c;按下复位键屏幕会进行刷新&#xff0c;数据不会丢失 如果按下按键&#xff0c;进行页擦除&#xff0c;之后再按下复位键&#xff0c;发现屏幕不会再进行刷新&#xff0c;原因是程序已经被擦除&#xff0c;损毁&#xff0c;无法运行&#xff0c;此…

2024OD机试卷-查找接口成功率最优时间段 (java\python\c++)

题目:查找接口成功率最优时间段 题目描述 服务之间交换的接口成功率作为 服务调用 关键质量特性,某个时间段内的接口失败率使用一个数组表示, 数组中每个元素都是单位时间内失败率数值,数组中的数值为0~100的整数, 给定一个数值(minAverageLost)表示某个时间段内平均失败…