区间内的真素数求解。

区间内的真素数
题目描述
真素数的定义:如果一个正整数P为素数,且其反序也为素数,那么P就为真素数。例如,11,13均为真素数,因为11的反序还是为11,13的反序为31也为素数。
给定两个正整数M和N,找出M和N之间的所有真素数
输入格式
输入两个数M和N,空格间隔,1≤M≤N≤100000。
输出格式
按从小到大输出M和N之间(包括M和N)的真素数,逗号间隔。如果之间没有真素数,则输出No。
输入输出样列
输入样例1:复制
10 35
输出样例1:复制
11,13,17,31
【耗时限制】1000ms 【内存限制】64MB

#include <iostream>
#include <cmath>

using namespace std;

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

int reverse(int x)
{
    int r = 0;
    while (x)
    {
        r = r * 10 + x % 10;
        x /= 10;
    }
    return r;
}

int main()
{
    int m, n, c = 0;
    cin >> m >> n;
    for (int i = m; i <= n; i++)
    {
        if (isprime(i) && isprime(reverse(i)))
        {
            if (c > 0)
                cout << ',';
            cout << i;
            c++;
        }
    }
    return 0;
}