#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define rep(i,n) for(int i=0;i=0;i--) #define all(v) (v).begin(),(v).end() #define stop char nyaa;cin>>nyaa; using P = pair; using ll = long long; using LP = pair; const ll inf = 1000000007; const ll INF = inf * inf; vector G[1 << 18]; bool used[1 << 18]; void solve() { int l, r; cin >> l >> r; for (int i = l; i <= r; i++) { for (int j = 2 * i; j <= r; j += i) { G[i].push_back(j); G[j].push_back(i); } } int cnt = 0; for (int i = l; i <= r; i++) { if (used[i])continue; queue q; used[i] = true; q.push(i); while (!q.empty()) { int v = q.front(); q.pop(); for (int to : G[v]) { if (used[to])continue; used[to] = true; q.push(to); } } cnt++; } int ans = cnt - 1; cout << ans << "\n"; } signed main() { cin.tie(0); ios::sync_with_stdio(false); //int t; cin >> t;rep(i, t)solve(); solve(); stop return 0; }