Alexandru este elev în clasa a V-a și este foarte pasionat de informatică. Într-o zi acesta a descoperit un vector A cu N elemente și a început să se joace cu ele. Tatăl său, profesor de matematică, îi admiră ingeniozitatea și îi pune M întrebări de forma: “Câte valori din vectorul A sunt divizibile cu numărul x?”.
Cerința
Alexandru a rezolvat deja această problemă banală, așa că te provoacă și pe tine să o rezolvi!
Date de intrare
Fișierul de intrare mdiv.in conține pe prima linie numărul N. Pe a doua linie se află N numere naturale, reprezentând elementele vectorului. Pe a treia linie se află numărul M, iar pe următoarele M linii se află întrebările.
Date de ieșire
Fișierul de ieșire mdiv.out va conține M linii, pe linia i aflându-se răspunsul la întrebarea i.
Restricții și precizări
1 ≤ N, M ≤ 100.000- fiecare valoare din vector, cât și fiecare întrebare
≤ 1.000.000și sunt nenule.
Exemplu
mdiv.in
8 2 4 2 6 1 9 1 5 3 2 5 3
mdiv.out
4 1 2
Explicație
Numerele divizibile cu 2 sunt 2, 4, 2, 6.
#include <bits/stdc++.h>
using namespace std;
ifstream fin("mdiv.in");
ofstream fout("mdiv.out");
int a[1000001], f[1000001];
int main()
{
int n , m , x;
for(fin >> n ; n ; n --)
{
fin >> x;
f[x]++;
}
for(int i = 1 ; i <= 1000000; i ++)
for(int j = i ; j <= 1000000 ; j += i)
if(f[j] > 0) a[i] += f[j];
for(fin >> m ; m ; m -- )
{
fin >> x;
fout << a[x] << "\n";
}
return 0;
}