#include 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; }