感觉纯模拟的时间复杂度不会超呀!哪位大佬帮帮我呗!
代码在这儿:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int t,p[50];
ll a;
int to(ll a,int d){
int cnt=0;
while(a){
p[++cnt]=a%d;
a/=d;
}
return cnt;
}
bool check(int len){
for(int i=1;i<=len/2;i++){
if(p[i]!=p[len-i+1]) return 0;
}
return 1;
}
int main(){
scanf("%d",&t);
while(t--){
scanf("%lld",&a);
int ans;
for(ans=2;;ans++){
int len=to(a,ans);
if(check(len)) break;
}
printf("%d\n",ans);
}
return 0;
}