当前位置: 首页 > ops >正文

题单:最大公约数(辗转相除法)

题目描述

所谓 “最大公约数(GCD)” ,是指所有公约数中最大的那个,例如 12 和 1818 的公约数有 1,2,3,6 ,所以 12 和 18 的最大公约数为 6 。

辗转相除法,又名欧几里德算法(Euclidean Algorithm),是求两个整数最大公约数的算法。这是已知最古老的算法,可以追溯到公元前 300300 年。它首次出现于欧几里德的《几何原本》中,在中国最早出现在东汉的《九章算术》中。

算法描述如下:设有两个整数 a,b ,

(1)令 r=a mod 

(2)若 r=0、 ,则 b 就是最大公约数,算法结束;若 r≠0r≠0 ,则令 a=b,b=ra=b,b=r ,返回(1)。

举例来说,a=32,b=20,辗转相除的过程如下

最大公约数为 44 。

这个算法并不介意开始时 aa 和 bb 谁大谁小,运算速度很快。

你的任务:运用辗转相除法求两个数的最大公约数。

输入格式

一行两个正整数 a,b (1≤a≤b≤2×109)a,b (1≤a≤b≤2×109) 。

输出格式

一行一个正整数,为两个数的最大公约数。

样例 #1

样例输入 #1

20 32

样例输出 #1

4

提示

代码:

 

#include<iostream>
using namespace std;
int main(){int a,b,r;cin>>a>>b;r=a%b;while(r!=0){a=b;b=r;r=a%b;}cout<<b;return 0;
}

http://www.xdnf.cn/news/10338.html

相关文章:

  • 安全漏洞修复导致SpringBoot2.7与Springfox不兼容
  • 爬虫工具链的详细分类解析
  • 力扣刷题Day 66:分割回文串(131)
  • 【Redis】数据类型补充
  • t018-高校宣讲会管理系统 【含源码!】
  • 浅谈简历制作的四点注意事项
  • NLP学习路线图(十四):词袋模型(Bag of Words)
  • Go语言中的数据类型转换
  • 数据结构之ArrayList
  • 【 SpringCloud | 微服务 网关 】
  • CppCon 2014 学习:Unicode in C++
  • win10手动调整日期和时间
  • ​​技术深度解析:《鸿蒙5.0+:无感续航的智能魔法》​
  • Java基本数据类型、抽象类和接口、枚举、时间类、String类全面介绍
  • 【PhysUnits】15.7 引入P1后的加法运算(add.rs)
  • 【赵渝强老师】OceanBase部署工具
  • buuctf-web
  • 计算机基础——宏病毒防御与网络技术
  • MacroDroid安卓版:自动化操作,让生活更智能
  • Ubuntu取消开机用户自动登录
  • RuoYi前后端分离框架实现前后端数据传输加密(二)之前端篇
  • 区块链可投会议CCF B--EDBT 2026 截止10.8 附录用率
  • unix/linux source 命令,其基本概念、定义、性质、定理
  • 科技修真的解决方案
  • MyBatis 的 <foreach> 标签中collection 属性
  • JVM学习(七)--JVM性能监控
  • WSL 安装 Debian 12 后,Linux 如何安装 curl , quickjs ?
  • 为什么badmin reconfig以后始终不能提交任务
  • PyTorch——DataLoader的使用
  • 第6节 Node.js 回调函数