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

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

题目描述

所谓 “最大公约数(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;
}

相关文章:

  • 数据结构之ArrayList
  • 【C/C++】面试基础题目收集
  • 基于 Three.js 的文本粒子解体效果技术原理剖析
  • 解释程序(Python)不需要生成机器码 逐行解析 逐行执行
  • java27
  • Maven概述,搭建,使用
  • 第五篇:HTTPS 与 TLS/SSL 握手原理
  • 前端面经 两栏布局
  • 逆向入门(1)
  • DFS每日刷题
  • Mac电脑上本地安装 redis并配置开启自启完整流程
  • pikachu通关教程-CSRF
  • 使用langchain实现五种分块策略:语义分块、父文档分块、递归分块、特殊格式、固定长度分块
  • 【论文阅读 | PR 2024 |ICAFusion:迭代交叉注意力引导的多光谱目标检测特征融合】
  • 一天搞懂深度学习--李宏毅教程笔记
  • 财管8-企业价值评估
  • 【位运算】两整数之和(medium)
  • 过滤攻击-聚合数据
  • Spring Boot 全局配置文件优先级
  • “人单酬“理念:财税行业的自我驱动革命
  • 校园网站html模板/自然搜索优化
  • 网站建设网银/优化大师使用心得
  • 网站建设公司广东/销售
  • 阿里云做外贸网站/长沙网站推广seo
  • 网站建设公司联系电话/百度营销推广
  • seo网站是什么/产品推广方案ppt模板