#4698. M<=ab

0
    ID: 4698 传统题 2000ms 1024MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>AtCoderabc296DGESP 5级枚举(单层循环)贪心

M<=ab

M<=ab

题目描述

给出正整数 NN 和 MM.
找到满足以下两个条件的最小正整数 XX,如果不存在这样的整数则输出 −1-1。

XX 可以表示为两个在 11 到 NN(包含)之间的整数 aa 和 bb 的乘积。这里,aa 和 bb 可以相同。 XX 至少为 MM。

输入格式

输入从标准输入给出,格式如下: NN MM

输出格式

输出满足两个条件的最小正整数 XX,如果不存在则输出 −1-1。

5 7
8
2 5
-1
100000 10000000000
10000000000

提示

1≤N≤10121\leq N\leq 10^{12} 1≤M≤10121\leq M\leq 10^{12} NN 和 MM 是整数。首先,77 不能表示为两个在 11 和 55 之间的整数的乘积。
其次,88 可以表示为两个在 11 和 55 之间的整数的乘积,例如 8=2×48=2\times 4。 因此,你应该输出 88.
由于 1×1=11\times 1=1, 1×2=21\times 2=2, 2×1=22\times 1=2, 和 2×2=42\times 2=4, 只有 11、22 和 44 可以表示为两个在 11 和 22 之间的整数的乘积, 因此没有大于等于 55 的数可以表示为两个这样的整数的乘积。
因此,你应该输出 −1-1.
当 a=b=100000a=b=100000 (=105)(=10^5) 时,aa 和 bb 的乘积是 1000000000010000000000 (=1010)(=10^{10}),这就是答案。
注意答案可能无法存入 32 位整数类型。

标签: AtCoder|abc296D

来源

AtCoder|abc296D