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 Q
i
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
numereN
șiQ
, reprezentând dimensiunea luiX
şi numărul de întrebări; - Pe a doua linie se găsesc
N
numere separate prin spaţiu, reprezentând elementele vectoruluiX
. - Pe următoarele
Q
linii se găsesc celeQ
întrebări, reprezentate printr-un numărQ
i
pe fiecare linie.
Date de ieșire
Fișierul de ieșire divizori1.out
va conține:
Q
linii, fiecare liniei
, reprezentând răspunsul pentruQi
.
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
).
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Divizori1:
//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;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #1596 Divizori1
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1596 Divizori1 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!