[R70C]弱化 - 代码源竞赛平台
时空限制
1S/512M
题目描述
对于一个正整数 x,若存在一个整数进制 b(b≥2),使得 x 在 b 进制下的表示同时满足以下条件,则称 x 为一个弱回文数:
形式化地,设 x 在 b 进制下的表示从高位到低位依次为 dm,dm−1,…,d0,其中 m≥1,1≤dm<b,且对于所有 0≤i≤m,均有 0≤di<b。若
di=dm−i
对于所有 0≤i≤m 均成立,则该表示是一个回文数。
给定一个正整数 x,你需要判断 x 是否为弱回文数。若是,还需要给出任意一个满足条件的进制 b。
格式
输入格式
本题包含多组测试数据。
第一行包含一个正整数 T,表示测试数据的组数。
接下来 T 行,每行包含一个正整数 x,表示该组测试数据中需要判断的正整数。
输出格式
对于每组测试数据:
- 若 x 不是弱回文数,输出一行一个字符串
No;
- 若 x 是弱回文数,先输出一行一个字符串
Yes,再输出一行一个整数 b,表示你找到的满足条件的进制。
若存在多个满足条件的进制,输出任意一个即可。
样例
样例输入 #1
4
2
8
28
85
样例输出 #1
No
Yes
3
Yes
3
Yes
4
样例解释 #1
2 在 2 进制下表示为 (10)2,不是回文数;在大于 2 的进制下均只包含一位数字,因此也不是弱回文数。
8 在 3 进制下表示为 (22)3,28 在 3 进制下表示为 (1001)3,85 在 4 进制下表示为 (1111)4,因此它们都是弱回文数。
数据规模
注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。
| 子任务编号 |
分数 |
T≤ |
x≤ |
| 1 |
50 |
100 |
104 |
| 2 |
50 |
104 |
109 |
对于 100% 的数据,满足 1≤T≤104,1≤x≤109。