Rikhail Mubinchik believes that the current definition of prime numbers is obsolete as they are too complex and unpredictable. A palindromic number is another matter. It is aesthetically pleasing, and it has a number of remarkable properties. Help Rikhail to convince the scientific community in this!
Let us remind you that a number is called prime if it is integer larger than one, and is not divisible by any positive integer other than itself and one.
Rikhail calls a number a palindromic if it is integer, positive, and its decimal representation without leading zeros is a palindrome, i.e. reads the same from left to right and right to left.
One problem with prime numbers is that there are too many of them. Let's introduce the following notation: π(n) — the number of primes no larger than n, rub(n) — the number of palindromic numbers no larger than n. Rikhail wants to prove that there are a lot more primes than palindromic ones.
He asked you to solve the following problem: for a given value of the coefficient A find the maximum n, such that π(n) ≤ A·rub(n).
The input consists of two positive integers p, q,
the numerator and denominator of the fraction that is the value of A (,
).
If such maximum number exists, then print it. Otherwise, print "Palindromic tree is better than splay tree" (without the quotes).
1 1
40
1 42
1
6 4
172
/* In the name of Allah */
#include<bits/stdc++.h>
using namespace std;
const int max_n=1e6+2e5+5;
int p[max_n];
bool check[max_n];
int q[max_n];
int main()
{
int a,b;
cin >> a>>b;
for(int i=2;i<max_n;i++)
{
if(!check[i])
{
p[i]=p[i-1]+1;
for(int j=2*i;j<max_n;j+=i)
check[j]=1;
}
else
p[i]=p[i-1];
}
for(int i=1;i<max_n;i++)
{
int id=i;
int j=0;
while(id!=0)
{
j=j*10 + id%10;
id/=10;
}
if(i==j) q[i]=q[i-1]+1;
else q[i]=q[i-1];
}
for(int i=max_n-5;i>0;i--)
{
if(b*p[i]<= a*q[i])
{
cout<< i;
return 0;
}
}
}
void init_prime()
{
int i, j;
for(i = 2;i <= sqrt(1000002.0); ++i)
{
if(!prime[i])
for(j = i * i; j < 1000002; j += i)
prime[j] = 1;
}
j = 0;
for(i = 2;i <= 1000002; ++i)
if(!prime[i])
prime[j++] = i;
}