//Dennis #include using namespace std; #define FORN(i,a,b) for (int i=a;i<=b;i++) const int MAX_PRIME=10000000; //max prime we'll ever need for this problem const int SQRT_MAX_PRIME=3163; //Sqrt(MAX_PRIME) - for Eratosthenes Prime Sieve bool isprime[MAX_PRIME+1]; //data structure to answer question of "is this a prime?" //Eratosthenes Prime Sieve void primeSieve(bool isprime[],int max_prime) { for (int i=0;i<=max_prime;i++) isprime[i]=true; //assume all isprime isprime[0]=false; isprime[1]=false; for (int prime=2;prime<=SQRT_MAX_PRIME;prime++) if (isprime[prime]) for (int comp=prime*prime;comp0) { r*=10; r+=n%10; n/=10; } return r; } int main() { //precompute primes primeSieve(isprime,MAX_PRIME); int a,b; while(cin>>a>>b && a>0) { int count=0; FORN(i,a,b) if (isprime[i] && isprime[reversed(i)]) count++; cout<