当前位置: 首页 > 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;
}

http://www.dtcms.com/a/225536.html

相关文章:

  • 数据结构之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 全局配置文件优先级
  • “人单酬“理念:财税行业的自我驱动革命
  • CCPC dongbei 2025 F
  • 神经网络-Day42
  • 针对 Harmony-Cordova 性能优化,涵盖原生插件开发、线程管理和资源加载等关键场景
  • Codeforces Round 1028 (Div. 2)(ABC)
  • MMRL: Multi-Modal Representation Learning for Vision-Language Models(多模态表示学习)
  • 【MFC】初识MFC
  • Redis缓存落地总结
  • 2025年计算机领域年度主题:融合创新与技术突破
  • 如何使用 Docker 部署grafana和loki收集vllm日志?
  • Flask文件处理全攻略:安全上传下载与异常处理实战