#include <iostream>
using namespace std;

int a[500005];

int main()
{
    int i, k = 1;      //k表示a数组大小
    int m, n, sum = 0; //sum表示幸运数个数
    int temp;
    cin >> m >> n;
    for (i = 1; i <= 1000000; i += 2)
    {
        a[k++] = i;
    }
    temp = 2; //当前幸运数所处的序号位置
    while (temp <= 1000)
    {
        int b[500005], t = 1; //b记录幸运数
        for (i = 1; i < k; i++)
        {
            if (i % a[temp] != 0) //如果序号位置i不能被某一个幸运数整除，则将其存储到b数组
                b[t++] = a[i];
        }
        for (i = 1; i < t; i++)
            a[i] = b[i];
        temp++;
        k = t;
    }
    for (i = 1; i <= n; i++)
    {
        if (a[i] > m && a[i] < n) //注意幸运数的区间（不包含m和n）
        {
            sum++;
        }
    }
    cout << sum << endl;

    return 0;
}
