辗转相除法求最大公约数

【C++解题报告】求最大公约数问题(辗转相除法) 题目来源:     基础班《函数、递推、递归》,递归第5题。     北大OJ-NOI 2.2基本算法之递归和自调用函数  7592 描述:          总时间限制:1000ms  内存限制:65536KB      给定两个正整数,求它们的最大公约数。 输入:       输入一行,包含两个正整数( 输出:        输出一 阅读详情

介绍

        辗转相除法(又称欧几里德算法)是一种求最大公约数的算法。它基于这样一个事实:两个数的最大公约数等于较大数和较小数余数的最大公约数。即两个数相除,再将除数和余数反复相除,当余数为0时,取当前除法的除数作为最大公约数。

如:求18和24的最大公约数

//用较小数作除数

24/18=1余6

18/6=3余0

所以最大公约数是6

 //用较大数作除数

18/24=0余18

24/18=1余6

18/6=3余0

所以最大公约数是6

不管是用较小数还是较大数作为除数对结果都没有影响,只是用较小数作除数,运算过程要少些。因此写代码的时候不用考虑两个数的大小。

应用

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int i=0;
	while (a % b != 0)//余数为0,循环结束,i的值即为最大公约数
	{
		i = a % b;
		a = b;//赋值,实现除数和余数的反复除法
		b = i;
	}
	printf("%d\n", i);
	return 0;
}

 


期待

win11下的MySQL安装 目前官方最新版本是8.0.26,考虑到其稳定性、可靠性还需一定周期保证,所以使用官方版求稳定仍然建议5.7系列。3、选择MySQL Servers 5.7.38 -x64,然后按绿色箭头将选中的版本移植到右边选中框中。4、点击下方蓝色Advanced Options,选择安装位置。1、在开始界面搜索MySQL,点击command line。4、在“系统变量”中选择“path”,点击编辑。5、新建——>增加MySQL路径——>确定,12、execute,安装好后next。9、不需要做修改,直接点击next。. 阅读详情

相关推荐

Ubuntu20.04下Intel RealSense D435i相机驱动配置全攻略(含ROS Noetic适配)

本文详细介绍了在Ubuntu20.04系统下配置Intel RealSense D435i相机驱动的完整流程,包括libRealsense SDK 2.0安装、ROS Noetic适配及常见问题解决方案。通过实战指南帮助开发者快速实现深度相机与ROS的集成,适用于机器人视觉和SLAM应用开发。

weixin_29281915的博客 511

求最大公约数(辗转相除法)

最大公约数(Greatest Common Divisor)指两个或多个整数共有约数中最大的一个。 也称最大公因数、最大公因子,a, b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个 整数的最大公约数也有同样的记号。求最大公约数有多种 方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的 最小...

晴空๓ 11万+

YOLOv11改进 | 添加注意力篇 | 结合2024最新Mamba注意力机制MLLA助力yolov11有效涨点含二次创新C2PSA(全网独家首发改进)

本文给大家带来的改进机制是结合号称超越Transformer架构的Mamba架构的最新注意力机制MLLA,本文将其和我们YOLOv11进行结合,的原理是通过将Mamba模型的一些核心设计融入线性注意力机制,从而提升模型的性能。具体来说,MLLA主要整合了Mamba中的“忘记门”(forget gate)和模块设计(block design)这两个关键因素,同时MLLA通过使用位置编码(RoPE)来替代忘记门,从而在保持并行计算和快速推理速度的同时,提供必要的位置信息。

Snu77的博客 3867

用辗转相除法求JAVA求最大公约数

求最大公约数(辗转相除法)

weixin_73588085的博客 2059

深入Kafka:从SASL_PLAINTEXT到SASL_SSL的迁移之旅

本文详细介绍了如何将Apache Kafka从SASL_PLAINTEXT模式迁移到更安全的SASL_SSL模式。内容包括创建密钥库和信任库、生成证书签名请求、设置证书颁发机构、签署CSR以及修改Kafka配置文件的完整步骤。针对常见问题如SSL握手失败和循环连接尝试提供了解决方案。通过实施这些步骤,可以确保Kafka数据传输的安全性,实现客户端身份验证和加密传输。文章强调在操作过程中需仔细检查配置文件和证书信息,以确保迁移顺利完成。

m0_74337424的博客 84

【AI理论学习】手把手推导扩散模型:Diffusion Models(DDPM)

生成扩散模型DDPM如下图所示分为前向、逆向两个过程,它首先通过不断往原始清晰数据中添加噪声使其变成标准高斯噪声(前向过程),而后期望从标准高斯噪声中还原原始数据(逆向过程)。若能实现,那便可从已知的标准高斯分布中采样一个噪声数据,而后利用DDPM模型生成符合原始数据分布的新数据。 Diffusion模型包含两个过程:数学符号:y∝xy\propto xy∝x:y正比于x,即y随着x增大而线性增大。 条件概率:贝叶斯公式:p(A∣B)=p(B∣A)×p(A)p(B)p(A|B)=\frac{p(B|A)\

小哲的博客 1508

java语言用辗转相除法求最大公约数

第一周《算法概论》作业 /** * 程序功能:用辗转相除法求2个数的最大公约数 * 时间:2014.03.10 */ import java.util.Scanner; public class Gcd { public static void main(String [] args){ Scanner in=new Scanner(System.in); System.

xiaokushiwo的专栏 1546

精通 Android NDK/JNI:从入门到精通实战与面试精粹

在Android开发中,

郑伟强dev的专栏 144

求最大公约数——辗转相除法

辗转相除法 例题: 求线段上格点的个数

莱尼的博客 415

基于Termux的Android平台OpenClaw部署:移动端AI助理实现

本文介绍了在Android设备上通过Termux部署OpenClaw AI助理的方案。Android设备的便携性、Termux提供的完整Linux环境以及多样化的硬件配置使其成为理想的部署平台。文章详细分析了不同级别Android设备的硬件规格(从入门级到旗舰级),并提供了最低/推荐配置要求。部署步骤包括Termux安装初始化、Python环境配置以及性能优化建议。该方案充分利用Android设备的传感器和电池供电优势,为移动办公、学习等场景提供了低成本、高便携性的AI助理解决方案。

博客 3010

AS7341可见光谱传感器原理图设计,已量产(光线传感器)

最近在做便携式环境光光谱检测项目时,我们基于 ams 的 AS7341 搭了一套硬件电路 —— 这颗芯片算是业内新一代的光谱传感 IC,8 个可见光通道 + NIR + 闪烁检测的配置,加上 6 路并行 16 位 ADC,数据吞吐能力确实够顶。今天就拆解下这个模块的硬件设计细节,聊聊实际做板时的那些考量点。

不脱发的程序猿 639

【辗转相除法求最大公约数】

原理 设两数为a、b(b 第一步:令c=gcd(a,b),则设a=mc,b=nc 第二步:根据前提可知r =a-kb=mc-knc=(m-kn)c 第三步:根据第二步结果可知c也是r的因数 第四步:可以断定m-kn与n互素【否则,可设m-kn=xd,n=yd,(d>1),则m=kn+xd=kyd+xd=(ky+x)d,则a=mc=(ky+x)dc,b=nc=ycd,故

u013647812的专栏 540

智能生活中枢:基于 ESP32-S3 的桌面智能助手与日程提醒终端设计与实现

本文完成了基于 ESP32-S3 的桌面智能助手与日程提醒终端的完整设计,实现了时间同步、日程管理、声光提醒、环境监测、本地存储等核心功能。硬件接线简洁、软件逻辑清晰,可直接制作成品使用。硬件方案:以 ESP32-S3 为核心,搭配 OLED、DS3231、DHT11、按键、声光模块,接线标准化、易复刻;软件方案:基于 Arduino 开发,提供标准 Mermaid 软件流程图,代码模块化、可直接编译运行;核心功能:网络授时、本地日程管理、掉电存储、声光提醒、温湿度监测,满足桌面智能助手全场景需求。

weixin_42300449的博客 208

辗转相除法求最大公约数_求两个数额最大公约数的几种方法并对其优化

package main import "fmt" /* 使用辗转相除法求两个数的最大公约数。 思路:辗转相除法原理为 a 和 b的最大公约数等于 b 和 a%b的最大公约数 (a > b) , 依次类推把求a b 的最大公约数换算成较小的值来求 */ func getGreatestCommonDivisorV1(a, b int) int { // 首先要保证 a &gt...

weixin_39913105的博客 206

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

试除法求约数+辗转相除法求最大公约数-java

本次主要讲解试除法求约数和辗转相除法求最大公约数。

m0_63267251的博客 1211

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

辗转相除法原理(求最大公约数)

以往我们求最大公约数可以从采用遍历的方式(常规思路) 1.穷举法 int gcd(int a,int b) { for(int i=a;i>0;i--) { if(a%i==0&&b%i==0) return i; } } 2.辗转相除法 接下来我们介绍另一种效率更高,计算次数少的方法——辗转相除法 (1)介绍 . 辗转相除法是求最大公约数的一种方法。它的具体做法是:用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,

qq_59708493的博客 7285

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【算法】辗转相除法求最大公约数

辗转相除法,又称欧几里德算法(Euclidean Algorithm),是求两个数的最大公约数(greatestcommondivisor)的一种方法。用较大的数除以较小的数,再以除数和余数反复做除法运算,当余数为0时,取当前算式除数为最大公约数。

Qiuhan_909的博客 6万+

使用辗转相除法和递归思想求两数最大公约数

辗转相除法 欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式gcd(a,b) => gcd(b,a mod b)。 算法简介 欧几里得算法是用来求两个正整数最大公约数的算法。(因为被欧几里得发明所以叫欧几里得算法) 扩展:欧几里得算法可用于RSA加密等领域。 假如需要求 1997 和 615 两个正整数的最大公约数,用欧几里得算法,是这样进行的: 1997 / 615 = 3 (余 152) 615 / 152 = 4(余7) 15

李的博客 5417

求最大公约数-辗转相除法

#define _CRT_SECURE_NO_WARNINGS 1 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main(){ int num1, num2, temp, n = 0; int max=0; scanf("%d %d", &amp;num1, &amp;num2); if (num1 == ...

qq_44370562的博客 252

辗转相除法求最大公约数,利用最大公约数求最小公倍数(C)

1. 用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。 2. 最小公倍数 * 最大公约数 = 两个数相乘

Zhangguohao666的博客 1万+

辗转相除法求两数最大公约数

辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。 例如,求(319,377): ∵ 319÷377=0(余319) ∴(319,377)=(377,319); ∵ 377÷319=1(余58) ∴(377,319)=(319,58); ∵ 319÷58=5(余29) ∴ (319,58)=(58,29); ∵ 58÷29=2(余0) ∴ (58,29)= 29; ∴ (319,3...

weixin_43772880的博客 267

①辗转相除法求最大公约数

辗转相除法又称为欧几里得算法,用于计算两个非负整数a和b的最大公约数(Greatest Common Divisor),简写为gcd,其计算的公式为gcd(a,b)=gcd(b,a%b)。 辗转相除法正确性证明如下(参考百度百科): 证法1: 证明gcd(a,b)=gcd(b,a%b),不妨假设a>b,且r=a%b,且r!=0 设a=kb+r(a,k,b,r都为正整数且r!=0) 假设d是a和b的一个公约数,记作d|a,d|b,即a和b都可以被d整除 而r=a-kb,两边同时除以d有r/d

sumerge的博客 771
上一篇: 数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字
下一篇: 【牛客网】BC51 三角形判断
大力初奇迹
博客等级 码龄3年 1294粉丝 54原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值