e có bài tập như sau:
Có một vài số nguyên tố khi viết đảo lại nó cũng là số nguyên tố. Ví dụ như 17 hay 71 đều là số nguyên tố. Cho hai số a và b hãy tìm xem có bao nhiêu số x nằm trong đoạn [a, b] sao cho khi viết xuôi hay viết đảo số đó đều là số nguyên tố.
ví dụ Input 5 150
Output 16
e code như sau thì bị time limited exceed
cho em hỏi còn cách nào tối ưu code để tránh lỗi time limited exceed ko ạ ( ko được dùng #include ) :
using namespace std;
int sdn(int N)
{
int nghichdao = 0 ;
while(N != 0)//Neu so gan con khac 0 thuc hien vong lap
{
nghichdao = nghichdao * 10 + N%10;
N = N / 10;//bien N chia 10
}
return nghichdao;
}
bool kt(int N)
{
if (N<2) return false;
if ((N!=2)&&(N%2==0)) return false;
for (int i = 2; i <= N/2; i++)
{
if (N % i == 0)
return false;
}
return true;
}
int main()
{
int i,a,b,s=0;
cin>>a>>b;
for(i=a;i<=b;++i){
if(kt(i) && kt(sdn(i)))
s+=1;
}
cout<<s;
return 0;
}