ZOJ 1078

来源:互联网 发布:南方大数据300a 编辑:程序博客网 时间:2024/06/16 21:12
#include<iostream>
using namespace std;
bool Is_P(int *a,int n)
{
    int i;
    bool Is=true;
    for(i=0;i<n/2;i++)
    {
        if(a[i]!=a[n-1-i]) Is=false;
    }
    return Is;
}
bool trans(int num,int n)
{
    int a[20],j;
    j=0;
    while(num)
    {
        a[j++]=num%n;
        num/=n;
    }
    return(Is_P(a,j));
}
int main()
{
    int num,i;
    cin>>num;
    while(num!=0)
    {
        for(i=2;i<=16;i++)
        {
            if(trans(num,i)) break;
        }
        if(i>16)
        {
            cout<<"Number "<<num<<" is not a palindrom\n";
        }
        else
        {
            cout<<"Number "<<num<<" is palindrom in basis";
            for(i=2;i<=16;i++)
            {
                if(trans(num,i)) cout<<" "<<i;
            }
            cout<<endl;
        }
        cin>>num;
    }
    return 0;
}