#include <bits/stdc++.h>
#define FOR(i, a, b) for(int i = (a); i <= (b); i++)
using namespace std;
const int N = (int)1e6, MAX = (int)1e6;
bool F[N+10];
int S[N+10], d[N+10];
int n, x, L, R, Q;
void Sieve(){
F[0] = F[1] = 1;
for(int i = 2; i*i <= MAX; i++)
if (!F[i])
for(int j = i*i; j <= MAX; j += i) F[j] = 1;
FOR(i, 2, MAX)
if (!F[i])
for(int j = i; j <= MAX; j += i) S[i] += d[j];
FOR(i, 1, MAX) S[i] += S[i-1];
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
freopen("PRIME.inp", "r", stdin);
freopen("PRIME.out", "w", stdout);
cin>>n;
FOR(i, 1, n){
cin>>x;
d[x]++;
}
Sieve();
cin>>Q;
while(Q--){
cin>>L>>R;
L = min(L, MAX);
R = min(R, MAX);
cout<<S[R]-S[L-1]<<'\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgRk9SKGksIGEsIGIpIGZvcihpbnQgaSA9IChhKTsgaSA8PSAoYik7IGkrKykKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBOID0gKGludCkxZTYsIE1BWCA9IChpbnQpMWU2Owpib29sIEZbTisxMF07CmludCBTW04rMTBdLCBkW04rMTBdOwppbnQgbiwgeCwgTCwgUiwgUTsKCnZvaWQgU2lldmUoKXsKICAgRlswXSA9IEZbMV0gPSAxOwogICBmb3IoaW50IGkgPSAyOyBpKmkgPD0gTUFYOyBpKyspCiAgICAgaWYgKCFGW2ldKQogICAgICBmb3IoaW50IGogPSBpKmk7IGogPD0gTUFYOyBqICs9IGkpIEZbal0gPSAxOwoKCiAgIEZPUihpLCAyLCBNQVgpCiAgICBpZiAoIUZbaV0pCiAgICAgIGZvcihpbnQgaiA9IGk7IGogPD0gTUFYOyBqICs9IGkpIFNbaV0gKz0gZFtqXTsKICAgRk9SKGksIDEsIE1BWCkgU1tpXSArPSBTW2ktMV07Cn0KCnNpZ25lZCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOyAgICBjb3V0LnRpZShOVUxMKTsKICAgIGZyZW9wZW4oIlBSSU1FLmlucCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3BlbigiUFJJTUUub3V0IiwgInciLCBzdGRvdXQpOwogICAgY2luPj5uOwogICAgRk9SKGksIDEsIG4pewogICAgICAgY2luPj54OwogICAgICAgZFt4XSsrOwogICAgfQogICAgU2lldmUoKTsKICAgIGNpbj4+UTsKICAgIHdoaWxlKFEtLSl7CiAgICAgICAgY2luPj5MPj5SOwogICAgICAgIEwgPSBtaW4oTCwgTUFYKTsKICAgICAgICBSID0gbWluKFIsIE1BWCk7CiAgICAgICAgY291dDw8U1tSXS1TW0wtMV08PCdcbic7CiAgICB9CiAgICByZXR1cm4gMDsKfQoK