第十三届蓝桥杯省赛JavaA组 D 题、Java C 组 G 题、Python C 组 G题——GCD(AC)

news/2024/11/29 11:33:08/

1.GCD

1.题目描述

给定两个不同的正整数 a,ba,ba,b 求一个正整数
kkk 使得 gcd(a+k,b+k)gcd(a+k,b+k)gcd(a+k,b+k) 尽可能 大,其中 gcd(a,b)gcd(a,b)gcd(a,b) 表示
aaabbb 的最大公约数,如果存在多个 kkk, 请输出所有满 足条件的
kkk 中最小的那个。

2.输入格式

输入一行包含两个正整数 a,ba,ba,b, 用一个空格分隔。

3.输出格式

输出一行包含一个正整数 kkk

4.样例输入

5 7

5.样例输出

1

6.数据范围

1≤a<b≤10181≤a<b≤10^{18}1a<b1018

7.原题链接

GCD

2.解题思路

熟悉gcd的性质的话,根据更相减损术可以知道一个等式:
gcd(a,b)=gcd(a,b−a)gcd(a,b)=gcd(a,b-a)gcd(a,b)=gcd(a,ba)
当然这里前提是 b>=ab>=ab>=a,同样根据该式我们可以将题目给定的原式进行变形:
gcd(a+k,b+k)=gcd(a+k,b−a)gcd(a+k,b+k)=gcd(a+k,b-a)gcd(a+k,b+k)=gcd(a+k,ba)
因为 a,ba,ba,b 都是已知的,我们令 c=b−ac=b-ac=ba,当然此时需要保证b>=a,那么我们求的式子就变为了gcd(a+k,c)gcd(a+k,c)gcd(a+k,c),显然这个式子的最大gcd一定为 ccc,我们只需要计算出 aaa 最少需要增加多少可以成为 ccc 的倍数,这个增量即是答案 kkk
时间复杂度:O(1)O(1)O(1)

3.Ac_code

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long uLL;
typedef pair<int, int> PII;
#define pb(s) push_back(s);
#define SZ(s) ((int)s.size());
#define ms(s,x) memset(s, x, sizeof(s))
#define all(s) s.begin(),s.end()
const int inf = 0x3f3f3f3f;
const int mod = 1000000007;
const int N = 200010;LL a, b;
void solve()
{cin >> a >> b;if (a > b) swap(a, b);LL c = b - a;LL g = a / c;if (a % c) g++;cout << (g * c - a) << '\n';
}
int main()
{ios_base :: sync_with_stdio(false);cin.tie(0); cout.tie(0);int t = 1;while (t--){solve();}return 0;
}

http://www.ppmy.cn/news/18561.html

相关文章

在甲骨文云容器实例(Container Instances)上部署firefox

甲骨文云推出了容器实例&#xff0c;这是一项无服务器计算服务&#xff0c;可以即时运行容器&#xff0c;而无需管理任何服务器。 今天我们尝试一下通过容器实例部署firefox。 Step1. 创建容器实例 在甲骨文容器实例页面&#xff0c;单击"创建容器实例"&#xff0c…

FPGA 20个例程篇:19.OV7725摄像头实时采集送HDMI显示(三)

第七章 实战项目提升&#xff0c;完善简历 19.OV7725摄像头实时采集送HDMI显示&#xff08;三&#xff09; 在详细介绍过OV7725 CMOS Sensor的相关背景知识和如何初始化其内部寄存器达到输出预期视频流的目的后&#xff0c;就到了该例程的核心内容即把OV7725输出的视频流预先缓…

FFmpeg 将多张图片编码成视频

前言 本篇文章的需求是将相机获取到的图片进行编码&#xff0c;编码成一个视频&#xff0c;耗费了大约一个星期的时间在解决各种问题。这里阐述一下这篇文章所要解决的几个问题&#xff1a; 1、如何将多张图片编码成视频。 2、如何进行定时录制视频。 3、同时开启多线程进行视…

【网络安全】WiFi密码爆破教程

WiFi密码爆破教程前言一、什么是暴力破解&#xff1f;二、准备破解工具1.VMware Pro 16 虚拟机安装2. VMware安装Kali Linux3. kali监听无限网卡三、WiFi密码暴力破解1. 虚拟机连接USB网卡2. 扫描附近WiFi3. 查看目标WiFi连接设备4. 抓包5. 破解前言 暴力破解攻击是指攻击者通…

docker-ubuntu

docker psdocker images# 拉取ubuntu镜像 docker pull ubuntu # 启动 docker start podid # 进入bash界面 docker exec -it podid /bin/bash# 安装sudo apt-get install sudo # 更新使配置生效 sudo apt update # 安装vim apt-get install vim# 安装中文包 sudo apt-get instal…

【JavaGuide面试总结】计算机网络·下

【JavaGuide面试总结】计算机网络下1.HTTP 和 HTTPS 有什么区别&#xff1f;2.HTTP 1.0 和 HTTP 1.1 有什么区别&#xff1f;连接方式状态响应码缓存处理Host头处理带宽优化3.HTTP 是不保存状态的协议, 如何保存用户状态?4.简单说说 ARP 协议的工作原理同一局域网内的 MAC 寻址…

TypeScript 中文手册(新年版)

目录 基础类型 介绍 布尔值 数字 字符串 数组 元组 Tuple 枚举 任意值 空值 Null 和 Undefined Never 类型断言 关于let 变量声明 变量声明 var 声明 作用域规则 变量获取怪异之处 let 声明 块作用域 重定义及屏蔽 块级作用域变量的获取 const 声明 le…

Redis基本类型和基本操作

2.Redis常见命令 Redis是典型的key-value数据库&#xff0c;key一般是字符串&#xff0c;而value包含很多不同的数据类型&#xff1a; Redis为了方便我们学习&#xff0c;将操作不同数据类型的命令也做了分组&#xff0c;在官网&#xff08; https://redis.io/commands &…