<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 {
public:
    int primePalindrome(int n) {
        int ans = 0;
        long long k = n;
        if(n<=2) return 2;
        if (n%2==0) k++;
        while(true) {
            int digits = floor(log10(k))+1;
            cout<<digits<<" ";
            if (digits>=4 && digits%2==0)
            k = pow(10,digits)+1;
            if (palindrome(k)){
                if (prime(k)){
                    ans = k;
                    break;
                }
            }
            k+=2;
        }
        return ans;
    }
    
    // to check the palindrome
    bool palindrome(int n) {
        int temp = n,rev = 0;
        while(temp != 0) {
            rev = rev*10 + temp%10;
            temp = temp / 10; 
        }
        if (rev == n) return true;
        else return false;
    }

    // to check the prime
    bool prime(int n) {
        if (n <= 1) return false;
        if (n==2 || n == 3) return true;
        if (n%2 == 0) return false;
        for (int i=3; i<=sqrt(n);i+=2) {
            if (n%i == 0){
                return false;
            }
        }
        return true;
    }
};
7700