#P12435. [NERC2023] Divisibility Test
[NERC2023] Divisibility Test
Description
Daisy 最近学习了整数的可除性规则,并对此非常着迷。她学到的其中一个测试是关于 3 的整除性测试:可以计算一个十进制数所有数字的和,然后检查这个和是否能被 3 整除。此外,这个数字和与原数在模 3 意义下同余——即模 3 的余数保持不变。例如,。Daisy 对这类余数保持的可除性测试特别感兴趣。
她还学习了其他一些针对十进制整数(基数为 10 的整数)的例子:
- 测试模 11 的整除性时,可以计算数字的交错和。从最后一位(最低有效位)开始计数,奇数位(最后一位、倒数第三位等)的数字相加,偶数位(倒数第二位、倒数第四位等)的数字相减,得到的和在模 11 意义下与原数同余。例如,。
- 测试模 4 的整除性时,保留最后两位数字。它们的值在模 4 意义下与原数同余。例如,。
- 测试模 7 的整除性时,计算三位数字组的交错和。例如,。
类似的测试也可以在其他进制中找到。例如,测试八进制数(基数为 8)模 5 的整除性时,可以计算两位数字组的交错和。例如,。
Daisy 希望为给定的基数 找到这样的规则。她对以下三种可除性测试感兴趣:
- 类型 1 —— 取基数为 的整数的最后 位数字。
- 类型 2 —— 取基数为 的整数的 位数字组的和。
- 类型 3 —— 取基数为 的整数的 位数字组的交错和。
并非总能找到这样的可除性测试。例如,在基数为 10 时,没有针对模 6 的测试(尽管存在其他测试 6 的整除性的方法)。
给定基数 和模数 ,Daisy 想知道是否存在这样的可除性测试,以及最小的组大小 是多少。
Input Format
输入包含多个测试用例。第一行是一个整数 —— 测试用例的数量。接下来的 行描述每个测试用例。
每个测试用例包含一行两个整数 和 —— 基数和模数()。输入中所有 的总和不超过 ,所有 的总和不超过 。
Output Format
输出 行 —— 每个测试用例一行。如果对于给定的 和 不存在可除性测试,则输出 0。否则,输出两个整数 和 ,其中 是可除性测试的类型(1、2 或 3), 是测试中数字组的位数,且 是所有可能的测试中最小的。
6
10 3
10 11
10 4
10 7
8 5
10 6
2 1
3 1
1 2
3 3
3 2
0
Hint
翻译由 DeepSeek V3 完成
京公网安备 11011102002149号