题目 20361

最大公因数

查看题解 ↗GitHub ↗如何评测
题号
20361
标签
比赛CSP-J
来源
2024 CSP-J 模拟赛 4 题

最大公因数

gcd

  • 时间限制:2.0 秒
  • 内存限制:512 MiB
  • 输入输出:标准输入输出

题目描述

给定两个正整数 l,rl, r(保证 l<rl < r),求 max⁡l≤x<y≤rgcd⁡(x,y)\max_{l \le x < y \le r} \gcd(x, y)。

其中 gcd⁡(x,y)\gcd(x, y) 表示 x,yx, y 的最大公因数,即 gcd⁡(x,y)=max⁡x mod d=y mod d=0d\gcd(x, y) = \max_{x \bmod d = y \bmod d = 0} d。

输入格式

第一行一个整数 TT 表示数据组数。

接下来 TT 行,每行两个正整数 l,rl, r 表示一组询问。

输出格式

TT 行,每行两个正整数表示答案。

样例 1 输入

文本
10
1 100
35 85
16 30
8 78
33 72
1 2
9 69
1 33
20 29
9 99

样例 1 输出

文本
50
42
10
39
36
1
34
16
7
49

样例 1 解释

对 l=1,r=100l = 1, r = 100,显然当 x=50,y=100x = 50, y = 100 时能取得最大的 gcd⁡(x,y)=50\gcd(x, y) = 50。

样例 2 ~ 5

见题目目录下的 2.in/2.ans ~ 5.in/5.ans。

数据范围

对 100% 数据,1≤T≤1001 \le T \le 100,1≤l<r≤10111 \le l < r \le 10^{11}。

测试点编号 r≤r \le r−l+1≤r - l + 1 \le 分值
1 ~ 5 10210^2 10210^2 20
6 ~ 10 10210^2 10210^2 20
11 ~ 15 101110^{11} 10310^3 20
16 ~ 20 101110^{11} 10510^5 20
21 ~ 25 101110^{11} 101110^{11} 20

提示

请注意 l,rl, r 的数据范围和 C/C++ 中 int 类型的取值范围。

数据下载

题目 20361 的公开数据

正在读取文件列表…

常用命令

题目 20361 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。