代码:
#include <stdio.h> #include <string.h> int fun(int x,int n) //将十进制的x转化为n进制,判断是否为回文数 { int a[100],b[100]; int k=0; for(int i=0;;i++) { a[i]=x%n; x=x/n; if(x==0) break; } k=i; int j; for(j=k,i=0;j>=0;i++,j--) b[i]=a[j]; b[k+1]='\0'; //求出x的n进制数 int flag=1; for (i=0;;i++) { if(i>(k/2)) break; if (b[i]!=b[k-i]) { flag=0;break; } } if(flag) return 1; //是n进制的回文数 else return 0; //不是 } int main() { int n,k,flag,i; while (scanf("%d",&n)==1) { for(;;n++) //枚举,找出最小的 { k=0; flag = 0; for(i=2;i<=10;i++) { if(fun(n,i)) k++; if(k>=2){flag=1; break;} } if(flag){ printf("%d\n",n); break;} } } return 0; }