最大公约数(欧几里得算法)

欧几里得算法

只需要记住一个公式(不需要推导,这就是数论的基础知识):

(a,b) = (b,a\%b)

step1:

判断小括号内右边的数字 b 是否为0,如果为0,输出小括号左边的数字 a ,就是一开始要求的两个数的最大公约数

step2:

如果 b != 0,递归进入 gcd(b,a%b),这样一直缩小小括号右边的数字,直到这个右边的数字为0,那么此时左边的数就是一开始要求的两个数的最大公约数 

 

 

题目如下:

给定 n 对正整数 ai,bi,请你求出每对数的最大公约数。

输入格式

第一行包含整数 n。

接下来 n 行,每行包含一个整数对 ai,bi

输出格式

输出共 n 行,每行输出一个整数对的最大公约数。

数据范围

1≤n≤105
1≤ai,bi≤2×109

代码如下:

#include<iostream>
#include<cstring>using namespace std;int n;int gcd(int a,int b)
{if(b ==0)return a;elsegcd(b,a%b);
}
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> n;while(n--){int a;int b;cin >> a >> b;cout << gcd(a,b) << endl;}return 0;
}

(1)模拟过程

(2)性质 

 

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

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

相关文章

深度学习入门笔记

深度学习入门笔记 感知机逻辑与门与非门或门多层感知机异或门 神经网络激活函数输出层设计损失函数均方误差 MSE交叉熵误差 反向传播算法计算图局部计算计算图反向传播反向传播 参数更新训练过程总结 该篇文章为本人学习笔记的一部分。笔记基于《深度学习入门 基于python理论实…

49-结构化程序设计方法的理解

‌结构化程序设计方法‌是一种以提高程序可读性、易维护性、可调性和可扩充性为目标的程序设计方法。它基于模块化设计原则&#xff0c;将程序划分为多个功能模块&#xff0c;每个模块负责实现特定的功能。这种方法强调使用三种基本控制结构&#xff1a;顺序、选择和循环&#…

在Linux下搭建go环境

下载go go官网&#xff1a;All releases - The Go Programming Language 我们可以吧压缩包下载到Windows上再传到Linux上&#xff0c;也可以直接web下载&#xff1a; wget https://golang.google.cn/dl/go1.23.0.linux-amd64.tar.gz 解压 使用命令解压&#xff1a; tar -x…

关于前端布局的基础知识

float 横向布局 float 实现横向布局&#xff0c;需要向横着布局的元素添加float 其值left right 存在问题 如果使用float 所在父级五高度&#xff0c;会导致下方的元素上移 top的高度被吞了 解决方法&#xff1a; 给父级元素设置高度&#xff1a;不推荐&#xff0c;需要给父级…

专题◉万字长文!盘点过去一年最出圈的Prompt项目教程,有3份在悄悄更新

1. OpenAI 官方出品 | 提示工程最权威的教程 (最新版) 2023年6月&#xff0c;OpenAI 发布了一篇〖*GPT Best Practice (GPT 最佳实践)* 〗教程&#xff0c;详细介绍 ChatGPT Prompt 交互策略&技巧&#xff0c;并且给出了示例说明。 一年时间过去了&#xff0c;OpenAI 不…

Axure RP实战:打造高效文字点选验证码

Axure RP实战&#xff1a;打造高效文字点选验证码 前言 在数字时代&#xff0c;网络安全和用户体验是设计在线表单时的两大关键考量。 验证码作为一种验证用户身份的技术&#xff0c;已经从简单的数字和字母组合&#xff0c;发展到了更为复杂和用户友好的形式。 今天&#…

数量关系:成本售价利润问题

问&#xff1a;某品牌服装&#xff0c;甲店进货价比乙店便宜10%&#xff0c;两店同时按20%的利润定价&#xff0c;这样1件商品乙店比甲店多赚4元&#xff0c;乙店的定价是多少元?() A 200 B 216 C 240【正确答案】 D 300标准答案&#xff1a;设乙店的进货价为x,则甲店的为0.9x…

灵办AI:解锁办公新境界,让工作更智能、更高效!

在这个信息爆炸的时代&#xff0c;我们每个人都在寻找能够提升效率、简化工作流程的工具。如果您正在寻找一个能够全方位提升工作效率的AI助手&#xff0c;那么灵办AI绝对值得您的关注。 为什么选择灵办AI&#xff1f; 在众多AI工具中&#xff0c;灵办AI凭借其卓越的性能和独…

Python数据采集与网络爬虫技术实训室解决方案

在大数据与人工智能时代&#xff0c;数据采集与分析已成为企业决策、市场洞察、产品创新等领域不可或缺的一环。而Python&#xff0c;作为一门高效、易学的编程语言&#xff0c;凭借其强大的库支持和广泛的应用场景&#xff0c;在数据采集与网络爬虫领域展现出了非凡的潜力。唯…

【微信小程序】导入项目

1.在微信开发工具中&#xff0c;点击【导入项目】 2.在打开的界面中执行2个步骤 1.找到要导入项目的路径2.AppID要改成自己的AppID 3.package.json包初始化【装包之前要确保有package.json文件】 1.在【资源管理器】空白处&#xff0c;点击鼠标右键&#xff0c;选择【】&am…

RabbitMQ 是什么?应用场景有哪些?

RabbitMQ 是一个实现了高级消息队列协议&#xff08;AMQP&#xff09;的开源消息代理软件。 一、RabbitMQ 的特点 它具有以下主要特点&#xff1a; 1. 可靠性高&#xff1a;确保消息能够可靠地传输&#xff0c;即使在网络故障或服务器故障的情况下也能保证消息不丢失。 2. …

显示中文字体问题解决:ImportError: The _imagingft C module is not installed

使用opencv写入中文时&#xff0c;用以下代码会导致乱码&#xff1a; cv2.putText(im0, f"{label}:{score}", (xmin, ymin), cv2.FONT_HERSHEY_SIMPLEX, 2, (0,255,0), 3)因此需要借助PIL库写入中文字符&#xff0c;用法如下&#xff1a; import cv2 from PIL impo…

一个简单的springboot项目(有源码)

开发一个springboot项目 代码迭代整合工具 gitee建模意义程序处理方式开发功能的步骤web服务网络状态码 web应用的开发分层springboot的作用 springboot框架搭建框架中各组件作用框架的演变如何提取hive中的表结构创建springboot 工程的引导模版 要选择aliyun &#xff0c;否则…

chrome cookie编辑

Cookie是一种在Web浏览器中存储数据的小型文本文件。它通常用于以下应用场景&#xff1a; 用户身份认证&#xff1a;当用户登录网站时&#xff0c;网站可以在用户浏览器中设置一个cookie来标识用户&#xff0c;并在用户访问其他页面时用来验证用户身份。 个性化设置&#xff1…

回顾MVC

Tomcat是servlet的容器,想用HttpServlet需要导入tomcat jar包 下图是没用springmvc时的场景&#xff0c;首先在web.xml里面配置访问路径为/Hello然后 通过get请求去调用login方法最后重定向到index.jsp中 index.jsp里面的内容 重定向到index.jsp中 在控制台获取到username里面的…

C#按引用传递参数

与按值传递参数&#xff0c;实参和形参使用的是两个不同内存中的值不同&#xff0c;按引用传递参数&#xff0c;引用参数是一个对变量的内存位置的引用&#xff0c;不会创建新的存储位置。 按引用传递参数的使用方式是在方法声明和引用时在传参前加ref修饰 using System; nam…

uniapp video标签无法播放视频

当video标签路径含有中文以及特殊字符视频就会无法播放 解决方法使用encodeURIComponent对路径进行加密处理 videoSrc data.coursewareFile? ${appConfig.apiUrl encodeURIComponent(data.coursewareFile)}: "";最后效果

力扣229题详解:求众数 II 的多种解法与模拟面试问答

在本篇文章中&#xff0c;我们将详细解读力扣第230题“二叉搜索树中第K小的元素”。通过学习本篇文章&#xff0c;读者将掌握如何在二叉搜索树中找到第K小的元素&#xff0c;并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释&#xff0c;以便于理解。 问题描…

突破编程 C++ 设计模式(组合模式)详尽攻略

在软件开发中&#xff0c;设计模式为程序员提供了解决特定问题的最佳实践。设计模式不仅提高了代码的可复用性和可维护性&#xff0c;还能帮助团队更好地进行协作。在这篇文章中&#xff0c;我们将深入探讨组合模式——一种结构型设计模式。 组合模式允许你将对象组合成树形结…

FUNCTION_ALV 下拉框的实现

下拉框可以用drdn_field或者使用DRDN_HNDL&#xff0c;这个文章主要是下拉框的基本使用&#xff0c;核心就是在fieldcat内表里面设置好下拉框的字段或者组的编号 文章目录 drdn_field使用DRDN_HNDL复制状态完整代码核心代码运行结果 drdn_field 使用DRDN_HNDL 复制状态 完整代码…