fbpx

Problema #2306 – Numere22 – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Se dau două numere prime p, q și n numere naturale nenule. Determinați exponentul maxim E pentru care numărul pEqEpEqE 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
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int a , b , n;
    cin >> a >> b >> n;
    int p1=0 , p2=0;
    int tmp;
    for(int i = 1; i <= n ; ++i)
    {
        cin >> tmp;
        int d=2;
        int p=0;
        while(tmp>1)
        {
            p=0;
            while(tmp%d==0)
                {
                    tmp/=d;
                    p++;
                }
            if(d==a)
                p1+=p;
            if(d==b)
                p2+=p;
            d++;
            if(d*d>tmp)
                d=tmp;
        }
    }
    if(p1>p2)
        cout << p2;
    else
        cout << p1;
    return 0;
}
Comentarii

S-ar putea sa iti placa