866.Prime Palindrome
class Solution {
public:
int primePalindrome(int N) {
if(N<=2)
return 2;
if(N%2 ==0 )
N++;
while(true)
{
if(N > 11 && (int)log10(N)%2)
N = pow(10,(int)log10(N)+1)+1;
if(reverse(N) == N && palin(N) )
return N;
N +=2;
}
return -1;
}
private:
int reverse(int n)
{
int tmp=0;
while(n)
{
tmp = 10*tmp + n%10;
n /=10;
}
return tmp;
}
int palin(int n)
{
int tmp=sqrt(n);
for (int i=2; i<=tmp;i++)
if(n%i==0)
return 0;
return 1;
}
};Last updated