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