回文数
#include <stdio.h>
#include <string.h>
int arr[32];
int ok;
int huiwennum(int n, int jinzhi)
{
int i = 0;
while(n)
{
arr[i++] = n % jinzhi;
n /= jinzhi;
}
int left = 0, right = i - 1;
while(left < right)
{
if(arr[left++] != arr[right--])
return 0;
}
return 1;
}
void jinzhihuiwen(int n)
{
int i;
for(i = 2; i <= 16; ++i)
{
if(huiwennum(n, i))
{
printf("Number %d is palindrom in basis %d.\n", n,i);
ok=1;
}
}
}
int main()
{
int n;
while(scanf("%d", &n)&&n != 0)
{
ok = 0;
jinzhihuiwen(n);
if(0==ok)
{
printf("Number %d is not a palindrom\n", n);
}
}
return 0;
}