#include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) typedef vector VI; typedef vector VVI; typedef vector VL; typedef vector VVL; typedef long long LL; #define all(a) (a).begin(), (a).end() #define Yes(n) cout << ((n) ? "Yes" : "No" ) << endl #define ALL(a) (a).begin(),(a).end() #define pb push_back #include using namespace atcoder; int op(int a, int b) { return a+ b; } //演算 int e() { return 0; } //単位元 int main() { int n;cin>>n; int ans[n]; int m=1000000; VVI A[m+1]; rep(i,n){ int l,r;cin>>l>>r; A[l].pb({r,i}); } int S[m+1]; segtree seg(m+1); rep(i,m+1){ S[i]=1; seg.set(i,1); } for(int i=m;i>1;i--){ int p=i+i; while(p<=m){ if(S[p]==1){ S[p]=0; seg.set(p,0); } p+=i; } for(VI z : A[i]){ ans[z[1]]=seg.prod(i,z[0]+1); } } for(VI z : A[1]){ans[z[1]]=1;} rep(i,n){cout<