Informatică, întrebare adresată de Biggez, 8 ani în urmă

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ăspunsuri la întrebare

Răspuns de ated
6
#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;
}

Biggez: Fix acum 5 minute am reusit sa o rezolv si eu.
Biggez: Aceasta este rezolvarea mea:
Biggez: #include <iostream>
#include <cmath>
using namespace std;

int main()
{
int p,q,n,x,prod=1,c=0,i,oc=0,op=0,cl;
cin>>p>>q>>n;
for(i=1;i<=n;i++)
{
cin>>x;
cl=x;
while(cl%p==0)
{
oc++;
cl=cl/p;
}
while(x%q==0)
{
op++;
x=x/q;
}
}
if(oc>op)
cout<<op;
else
cout<<oc;
}
Biggez: Ori cum multumes si as mai avea o intrebare. Cum copiezi programul astfel incat sa nu se vada asa de urat ca al meu? Eu cand il copiez din codeblocks imi apare cu lipsuri sau fara spatii.
Biggez: Ma refer cand copiez un cod din codeblocks si il pun pe acest site.
ated: ca sa ramana spatiile la mine eu intai lipesc codul pe pbinfo si dupa il copiez de acolo si il lipesc aici
Biggez: Ok , mersi.
ated: cu placere :)
Alte întrebări interesante