👤

Nume problema : Numere22
Sursa : pbinfo.ro

Cerinţa
Se dau două numere prime p, q și n numere naturale nenule. Determinați exponentul maxim E pentru care numărul p^E⋅q^E divide produsul celor n numere date.

Date de intrare
Programul citește de la tastatură numere p q n, iar apoi n numere naturale, separate prin spaţii.

Date de ieşire
Programul afișează pe ecran numărul E, reprezentând numărul cerut.

Restricţii şi precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000

Exemplu
Intrare
7 2 5
72 56 70 9 700

Ieșire
3

Indicatii: Apare un mos craciun intro sanie.(nu stiu care este legatura)



Răspuns :

#include <iostream>

using namespace std;

int main()
{
    int p, q, n, nrP=0, nrQ=0;
    cin >> p >> q >> n;
    for (int i=0; i<n; i++)
    {
        int x; cin >> x;
        while(x%p==0)
        {
            x /= p;
            nrP++;
        }
        while (x%q==0)
        {
            x /= q;
            nrQ++;
        }
    }
    cout << (nrP < nrQ? nrP:nrQ);
    return 0;
}