[R56F]不是计数题 - 代码源竞赛平台
时空限制
3S/256M
题目描述
定义一个正整数 n 是好的,当且仅当存在一个正整数 x 满足 n=x(x+1),并且称这个 x 为 n 的匹配值。例如:
- 56 是好的,因为 56=7×(7+1),并且 56 的匹配值为 7。
- 12 是好的,因为 12=3×(3+1),并且 12 的匹配值为 3。
有 T 组数据,每组数据给定一个正整数 a,你需要找到最小的好的数使得它是 a 的倍数,并输出它的匹配值,若无解,则输出 -1。
格式
输入格式
本题包含多组测试数据。
第一行一个正整数 T 表示数据组数。
对于每组数据第一行包含一个正整数 a,表示询问的数。
输出格式
对于每组数据,若无解,则输出一行一个整数 -1,否则输出一行一个正整数表示答案。
样例
样例输入 #1
5
2
5
12
56
10
样例输出 #1
1
4
3
7
4
数据规模
注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。
| 子任务编号 |
分数 |
a≤ |
| 1 |
20 |
106 |
| 2 |
80 |
1014 |
对于 100% 的数据,满足 1≤T≤15,1≤a≤1014。