回文质数     写一个程序来找出大过a的最小的回文质数。

 【问题描述】 因为151即是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。 写一个程序来找出大过a的最小的回文质数。 【输入格式】 第 1 行: 一个整数 a .(a<100000) 【输出格式】 输出一个回文质数。 【输入样例】 10301 【输出样例】 10501

那不得穷举吗?一个质数函数,一个回文函数即可

bool isprime(int n)
{
    for(int i=2;i*i<=n;i++)
        if(n%i==0)
            return false;
    return true;
}

bool isback(int n)
{
    char buf[20] = {0};
    itoa(n,buf,10);
    int len  = strlen(buf);
    int i,j;
    for(i=0,j=len-1;i<j;i++,j--)
        if(buf[i] != buf[j])
            return false;
    return true;
}

int main()
{
    int n;
    scanf("%d",&n);
    while(1)
    {
        if(isprime(n) && isback(n))
        {
            printf("最小回文质数是:%d",n);
            break;
        }
        n++;
    }
}