#include<bits/stdc++.h>
using namespace std;
char a[20]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J'};
int B;
string _tzj(const int&n){
string m;
for(register int i(n);i;i/=n)
m+=a[i%B];
return m;
}
char judge(const string&s){
for(register int i(1),len(s.size());(i<<1)<len;++i)
if(s[i]^s[len-i+1])return 0;
return 1;
}
int main(){
scanf("%d",&B);
for(register int i(1);i^301;++i){
string s(_tzj(i*i));
if(judge(s))
cout<<_tzj(i)<<' '<<s<<endl;
}
return 0;
}
为什么_tzj()的定义语句(string s)会炸