GETTING TLE IN PRIME PLINDROME

#include<stdio.h>
//#include<conio.h>
#include<math.h>
int plindrome(long long n)
{ long long k,n1=n,n2=0;
while(n1!=0)
{
k=n1%10;
n1=n1/10;
n2=n2*10+k;
}
if(n2==n)
return 1;
else
return 0;
}
int prime(long long n)
{
long long i;
int f=1;
for(i=2;i<=(sqrt(n)+1);i++)
{if(n%i==0)
{f=0;
break;
}
}
return f;
}
int main()
{
long long n,t=20;
int f,f1,i;

    {  scanf("%lld",&n);
      while(1)
      {
        f=prime(n);
        if(f==1)
        {   
           f1=plindrome(n);
           if(f1==1)
         {  printf("%lld",n);
           break;
         }
         else n++;
         }
        else n++;
        }
     }//getch();
        return 0;
        }

One way to reduce execution time is…use sieve to mark all numbers as primes or not primes(numbers upto the smallest prime-palin after the max value of N)…hope this helps…:slight_smile: