这个题目只是需要转变进制就好了
#include<stdio.h>
#include<string.h>
int F(int n,int m){
int i,a[35],s=0;
while(n!=0){
a[s]=n%m;
n/=m;
s++;
}
for(i=0;i<=(s-1)/2;i++)
if(a[i]!=a[s-1-i])
return 3;
return 1;
}
int main(){
int s,n,i,a[18];
while(scanf("%d",&n),n!=0){
s=0;
for(i=2;i<=16;i++)
if(F(n,i)==1){
a[i]=1;
s++;
}
if(s==0)
printf("number %d is not a palindrom\n",n);
else{
printf("number %d is palindrom in basis",n);
for(i=2;i<=16;i++)
if(a[i]==1){
printf(" %d",i);
a[i]=0;
}
printf("\n");
}
}
return 0;
}