oj进制的回文数(存在些许疑惑



思路很清晰,构造一个数列,循环
我存在的疑惑:按照给出的样例 6的最小可构成回文数的进制是5,所以我下意识觉得只需要遍历2~n-1的数,因为n在n-1进制下肯定为11,但却是错误0分,必须遍历到n+1;
AC代码
#include<stdio.h>
int main(){int T;scanf("%d",&T);while(T--){int n;scanf("%d",&n);for(int i=2;i<=n+1;i++){int rank[128]={0};int t=n,cnt=0;while(t){rank[cnt]=t%i;t=t/i;cnt++;}if(rank[cnt-1]==0) continue;int flag=1;for(int j=0,k=cnt-1;j<k;j++,k--){if(rank[j]!=rank[k]){flag=0;break;}}if(flag){printf("%d\n",i);break;}}}
}