Acwing-872. 最大公约数

2023-11-07

 d | a, a | b  ==>  d | ax + by

(a, b) = (b, a mod b)

证明:a mod b = a - [a / b] * b = a - c * b   注:[ ] 为下取整符号,[a / b] 记为c

所以,(a, b) = (b, a - c * b)= (b, a mod b)

以下证明(a, b) = (b, a - c * b)

对于左边任何一个公约数d,d | a, d | b, 由数论基本性质 d | a, a | b  ==>  d | ax + by知,

d| b 且 d | a - c * b,左可推出右(即左边的任何一个公约数都是右边的公约数)

对于右边任何一个公约数d,d | b, d | a - c * b, 由数论基本性质 d | a, a | b  ==>  d | ax + by知,

d | a - c * b + c * b,即 d | a,又因为d | b,所以右可以推出左(即右边的任何一个公约数都是左边的公约数)

所以,两边的公约数集合是相同的,所以左边的最大公约数等于右边的最大公约数

#include <iostream>

using namespace std;

int gcd(int a, int b)
{
    return b ? gcd(b, a % b) : a;
}

int main()
{
    int n;
    scanf("%d", &n);
    
    while (n --)
    {
        int a, b;
        scanf("%d%d", &a, &b);
        printf("%d\n", gcd(a, b));
    }
    
    return 0;
}

注:(a, 0) = a,a和0的最大公约数是a,因为0可以整除任何数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Acwing-872. 最大公约数 的相关文章

随机推荐

  • linux中用shell脚本对tomcat和nginx做日志切割

    Tomcat日志catalina out切割小脚本 bin bash cut tomcat catalina out yesterday date F d 1 days cd usr local tomcat7 0 70 log cp ca
  • 网络编程基础API

    基础API signal函数 inculde
  • 中文语音识别数据集总结

    目录 OpenSLR国内镜像 1 Free ST Chinese Mandarin Corpus 2 Primewords Chinese Corpus Set 1 3 爱数智慧中文手机录音音频语料库 Mandarin Chinese Re
  • 我与我的电脑:一个学生的第一台电脑与职场奋斗史

    分享一个同学的故事 我的一个同学他是个聪明且勤奋的学生 当他在2003年上学时 电脑已经慢慢成为人们生活和工作的工具 因此 他决定购买一台电脑来帮助自己的学习和研究 但是 由于他的家庭经济并不富裕 他无法购买一台高端的品牌电脑 只能考虑购买
  • Camunda Modeler给流程模型设置流程变量及默认值

    如下图所示 在提单页面 发起人需要手动选择走部门内分组审核还是部门负责人审核 对于这种由发起人选择走不同分支的且分支条件不是来自业务系统的情形 需要在流程模型上设置变量并赋初始化值 下面介绍如何设置及使用
  • jmeter面试题及答案

    1 解释什么是jmeter jmeter是一款java开源工具 用于性能负载测试 它旨在分析和衡量web应用程序和各种服务的性能和负载功能行为 2 说明jmeter的工作原理 jmeter就像一群将请求发送到目标服务器的用户一样 它收集来自
  • centOs安装出现No package git available的解决办法

    来源地址 http chinacheng iteye com blog 1825538 centos安装git 下载源代码安装后 git clone出现 fatal unable to find remote helper for http
  • PLC(二)西门子S7-200PLC基础知识

    西门子S7 200PLC基础知识 一 西门子S7 200PLC模块与界线 S7 200系列PLC硬件包括S7 200CPU由6个型号 使用方法基本相同 西门子S7 200CPU模块 S7 200CPU将微处理器 集成电源和多个数字量I O点
  • jdbc链接数据库设置编码格式

    jdbc mysql test characterEncoding utf 8
  • QT安装、构建套件(MSVC、MinGW)配置

    QT安装 构建套件 MSVC MinGW 配置 1 QT框架及QT Creator下载 登录QT官网 https www qt io download 点击downloads for open source users 在页面最下方 点击D
  • VS中的解决方案设置--项目属性

    首先 我们一般不会修改解决方案的属性 而是设置每个项目各自的属性 接着上一篇文章 我们来看看我们应该怎样来设置各项目的项目属性更好 我们以NYOJ 001项目的Debug版的设置为例 在常规选项里 我们一般会设置输出目录 即生成 exe文件
  • floyd(poj2240 arbitrage)

    Arbitrage Time Limit 1000MS Memory Limit 65536K Total Submissions 26618 Accepted 11223 Description Arbitrage is the use
  • vector中push_back()、resize()、reserve()、insert()、erase()、front()、back()、assign()、begin()、end()、clear()

    class Date public Date int year 1900 int month 1 int day 1 year year month month day day private int year int month int
  • 图像超分辨率调研

    1 基于包 基础环境安装 condarc channels https mirrors tuna tsinghua edu cn anaconda pkgs free conda forge defaults show channel ur
  • echarts悬浮提示框之formatter 函数

    要求 在图表用条形图显示一部分数据 其余数据采用悬浮提示框显示 说明 在echarts中的series要求的数据格式如下 series name 直接访问 type bar stack 总量 label normal show true p
  • python根据关键词给对应数据打上标记

    import pandas as pd mm ABC 50m DEF 45ji ABC 50m ABC 45ji ABC CDE 50m BGT 45ji SCD nn ABC DEF CDE SCD BGT dl for m in mm
  • linux修改宝塔密码命令

    修改密码 将命令最后面的 newpassword 替换成你要改的新密码 cd www server panel python tools py panel newpassword
  • Unity3D UNET 模仿局域网游戏(二)

    紧接着上一篇博客 上一篇博客中 我们已经能够分别移动角色 并且控制他射击了 而且还稍微区分了一下不同的角色 这篇博客中我们继续讲解后面的内容 既然角色都已经可以射击了 那肯定还得需要一个血量对吧 所以现在我们就添加血量 给Player添加H
  • 介绍一个国内最快的CentOS YUM源

    介绍一个国内最快的CentOS YUM源 最近在使用CentOS 苦于CentOS的自带的源更新速度太慢 于是在互联网上找到了中科大中国官方镜像网站 http centos ustc edu cn 方便以后通过yum更新软件 CentOS
  • Acwing-872. 最大公约数

    d a a b gt d ax by a b b a mod b 证明 a mod b a a b b a c b 注 为下取整符号 a b 记为c 所以 a b b a c b b a mod b 以下证明 a b b a c b 对于左