Informatică, întrebare adresată de VinaCosmin, 9 ani în urmă

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.

Răspunsuri la întrebare

Răspuns de ap53
5
#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;
}
Alte întrebări interesante