#ABC475G. 约数最多的数 / Has Many Divisors

约数最多的数 / Has Many Divisors

题目描述

给定两个均不小于 22 的整数 NN 与 DD。

请在不超过 NN 且不是 DD 的倍数的正整数中,找出一个正约数个数最多的数。若存在多个这样的正整数,输出其中任意一个均可。

本题有 TT 组测试数据,请分别求解。

输入格式

输入按以下格式从标准输入读入:

  • TT
  • case1\text{case}_1
  • case2\text{case}_2
  • ⋮\vdots
  • caseT\text{case}_T

这里,casei\text{case}_i 表示第 ii 组测试数据,其格式如下:

  • NN DD

输出格式

输出 TT 行。第 ii 行应输出第 ii 组测试数据的答案。

数据范围

  • 1≤T≤101 \leq T \leq 10
  • 2≤D≤N≤10182 \leq D \leq N \leq 10^{18}
  • 所有输入值均为整数。
4
10 2
17 4
2026 919
1000000000000 48
9
15
1680
843291048600

不超过 1010 且不是 22 的倍数的正整数为 1,3,5,7,91, 3, 5, 7, 9 这五个,它们的正约数个数分别为 1,2,2,2,31, 2, 2, 2, 3。因此第一组测试数据输出 99。

对于第二组测试数据,除样例输出中的 1515 之外,输出 6,10,146, 10, 14 中的任意一个也会被接受。

子任务设置

  • 子任务 1(30 分):N≤106N \le 10^6。
  • 子任务 2(30 分):N≤1012N \le 10^{12}。
  • 子任务 3(40 分):无特殊限制。