358
Cerinţa
Se dau două numere prime p, q și n numere naturale nenule. Determinați exponentul maxim E pentru care numărul pE⋅qE 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
nnumere citite vor fi mai mici decât1.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