#include using namespace std; vector < int > nums[100009]; map < int , int > ok; vector < int > d; int S , act , x , i , j , a , b , p[109]; bool prime(int x) { for (int i = 2 ; i * i <= x; ++i) if (x % i == 0) return false; return true; } void bkt(int k) { nums[++S] = d; if (k > 8) return; d.push_back(0); if (k == 0) { d[k] = 2; bkt(k + 1); d[k] = 3; bkt(k + 1); d[k] = 5; bkt(k + 1); d[k] = 7; bkt(k + 1); } else { d[k] = 3; bkt(k + 1); d[k] = 7; bkt(k + 1); } d.pop_back(); } bool compare(vector < int > a , vector < int > b) { if (a.size() == b.size()) return a < b; return a.size() < b.size(); } int main() { //ifstream fin("input"); //ofstream fout("output"); p[1] = 2; p[2] = 3; p[3] = 5; p[4] = 7; p[5] = 23; p[6] = 37; p[7] = 53; p[8] = 73; fin >> a >> b; for (i = 1 ; i <= 8 ; ++i) if (p[i] >= a) break; for (j = 1 ; j <= 8 ; ++j) if (p[j] > b) break; fout << j - i << '\n'; /* bkt(0); sort(nums + 1 , nums + S + 1 , compare); for (int p = 1 ; p <= S ; p++) { d = nums[p]; act = 1; for (i = 0 ; i <= d.size() && act ; ++i) { x = 0; for (j = 0 ; j < d.size() ; ++j) if (j != i) x = x * 10 + d[j]; if (i == d.size()) act &= prime(x); else act &= ok[x]; } if (act) { ok[x] = 1; fout << x << '\n'; } }*/ return 0; }