<p>Given an integer n, return <em>the smallest <strong>prime palindrome</strong> greater than or equal to </em><code>n</code>.</p>

<p>An integer is <strong>prime</strong> if it has exactly two divisors: <code>1</code> and itself. Note that <code>1</code> is not a prime number.</p>

<ul>
	<li>For example, <code>2</code>, <code>3</code>, <code>5</code>, <code>7</code>, <code>11</code>, and <code>13</code> are all primes.</li>
</ul>

<p>An integer is a <strong>palindrome</strong> if it reads the same from left to right as it does from right to left.</p>

<ul>
	<li>For example, <code>101</code> and <code>12321</code> are palindromes.</li>
</ul>

<p>The test cases are generated so that the answer always exists and is in the range <code>[2, 2 * 10<sup>8</sup>]</code>.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>
<pre><strong>Input:</strong> n = 6
<strong>Output:</strong> 7
</pre><p><strong class="example">Example 2:</strong></p>
<pre><strong>Input:</strong> n = 8
<strong>Output:</strong> 11
</pre><p><strong class="example">Example 3:</strong></p>
<pre><strong>Input:</strong> n = 13
<strong>Output:</strong> 101
</pre>
<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>1 &lt;= n &lt;= 10<sup>8</sup></code></li>
</ul>

class Solution {
    bool isPrime(int n)
    {
        bool p=true;
        for(int i=2;i*i<=n;i++)
        {
            if(n%i==0)
            {
                p=false;
                break;
            }
        }
        return p;
    }
    bool isPalindrome(int n)
    {
         vector<int>v;
         while(n>0)
         {
            v.push_back(n%10);
            n=n/10;
         }
         int i=0,j=v.size()-1;
         while(i<j)
         {
            if(v[i]!=v[j])
            return false;
            i++;
            j--;
         }
         return true;
    }
public:
    int primePalindrome(int n) 
    {
        if(n==1)
        return 2;

        while(1)
        {
            //skip all even length prime palindrome bcoz in even only 11 will come to prime and palindrome
            if((n>1e3 && n<1e4) || (n>1e5 && n<1e6) || (n>1e7 && n<1e8))
            {
                //to calculate the number of digits in number
                n=pow(10,ceil(log10(n)));
                continue;
            }
            if(isPrime(n) && isPalindrome(n))
            return n;
            n++;
        }
        return -1;
    }
};
14200