#L3679. 「北大集训 2021」算术
「北大集训 2021」算术
题目描述
小 Q 学习了一种判断大数是否是 的倍数的方法。该方法在 进制下进行,需要将数字按每 位分段,然后进行一系列运算。
对于给定的 ,小 Q 想知道最小的正整数 ,使得无论输入如何,输入和对应的输出要么同时是 的倍数,要么同时不是 的倍数,或者报告这样的 不存在。
注意 不一定是质数。
输入格式
第一行包含两个正整数 ,表示测试数据组数与方法的 参数。
接下来 行每行一个整数 表示每组测试数据的进制。
保证:
输入中的所有数字按照十进制给出。
输出格式
对于每组数据输出一行,若不存在合法的 输出 -1,否则输出最小的满足条件的正整数 。
样例
输入
2 9
14
16
输出
2
-1
数据范围与提示
| 子任务编号 | 分值 | ||
|---|---|---|---|
| 1 | 3 | 10 | 5 |
| 2 | 10 | ||
| 3 | |||
| 4 | 11 | ||
| 5 | |||
| 6 | |||
| 7 | |||
| 8 | 7 | ||
| 9 | 17 | ||
| 10 |
为了选手们的身心健康,下发文件中的 down.cpp 中实现了大整数取模乘法函数 mul(A, B, P),你需要保证 ,函数会返回 。你可以自由选择使用或者不使用这份代码。其中需要保证你调用时 均不超过 。