# PBinfo #1596 – Divizori1 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Fie X un vector de numere naturale distincte, de dimensiune N,  X = (x[1], x[2], …, x[N]). Se dă un număr natural Q, apoi Q întrebări de forma: “Câţi divizori ai lui Qi se află în şirul X?”.

Cerința
Răspundeţi la cele Q întrebări.

Date de intrare
Fișierul de intrare divizori1.in conține:


Pe prima linie 2 numere N și Q, reprezentând dimensiunea lui X şi numărul de întrebări;
Pe a doua linie se găsesc N numere separate prin spaţiu, reprezentând elementele vectorului X.
Pe următoarele Q linii se găsesc cele Q întrebări, reprezentate printr-un număr Qi pe fiecare linie.

Date de ieșire
Fișierul de ieșire divizori1.out va conține: 


Q linii, fiecare linie i, reprezentând răspunsul pentru Qi.

Restricții și precizări

1 ≤ N, Q ≤ 10.000
1 ≤ Qi, Xi ≤ 100.000

Exemplu:
divizori1.in

5 2
6 2 3 12 4
6
12
divizori1.out

3
5
Explicație
6 conţine 3 divizori în şir(6, 2, 3).
12 conţine 5 divizori în şir(6, 2, 3, 12, 4).

## Cod sursă C++

```cpp
//Dragan Andrei Gabriel
//University of Bucharest
#include <cstdio>
using namespace std;
int v[100001], N, X, Q, nr;
int main()
{
    freopen("divizori1.in", "r", stdin);
    freopen("divizori1.out", "w", stdout);
    scanf("%d %d", &N, &Q);
    for (int i = 1; i <= N; i++)
        {
            scanf("%d", &X);
            for (int j = X; j <= 100000; j += X)
                v[j]++;
        }
    for (int i = 1; i <= Q; i++)
    {
        scanf("%d", &X);
        printf("%d\n", v[X]);
    }
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/1596)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/1596/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-1596/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
