286
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
n
numere 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