#include<cstring>
#include<vector>
using namespace std;
int n,m,sum,z;
string ans,l;
string jz(int x){
z=x%n;
if(z>=10) ans= z - 10 + 'A';
else ans=z + '0' ;
x=x/n;//把ans先附上一个值,好进行字符拼接
while(x){
z=x%n;
if(z>=10) ans+= z - 10 + 'A';
else ans+=z + '0' ;
x=x/n;
}
sum=ans.size();
if(sum==2)swap(ans[0],ans[1]);//发现两位的字符无法交换位置,所以特判
for(int i=0;i<=sum/2;i++){
swap(ans[i],ans[sum-i-1]);
}
return ans;
}
bool hw(string v){
for(int i=0;i<sum;i++){
if(v[i]!=v[sum-1-i])return false;
}
return true;
}//判断回文
int main(){
cin>>n;
for(int i=1;i<=300;i++){
m=i*i;
if(hw(jz(m)))cout<<jz(i)<<' '<<jz(m)<<endl;
}
return 0;
}
回文平方【回文平方】
最新推荐文章于 2024-09-11 06:30:00 发布