fbpx

Problema #1011 – p3factoriale – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dau a, b, c și p numere naturale, astfel încât a ≥ b + c și p număr prim. Să se afle dacă numărul a!b!  c!a!b!  c! este divizibil cu p, și să se afle exponentul lui p în descompunerea în factori primi a acestui număr.

Date de intrare

Programul citește de la tastatură numerele a, b, c și p, separate prin spații.

Date de ieșire

Programul va afișa pe ecran numărul e, reprezentând exponentul lui p în descompunerea în factori primi a numărului natural a!b!  c!a!b!  c!. Dacă numărul nu este divizibil cu p, atunci se va afișa 0.

Restricții și precizări

  • 1 ≤ a , b , c ≤ 1.000.000.000
  • a ≥ b + c
  • 2 ≤ p ≤ 1.000

, deci exponentul este 3.

#include <bits/stdc++.h>

using namespace std;

///ifstream cin("meteoriti.in");
//ofstream cout("meteoriti.out");

long long a, b, c, p;

int nrdivP(long long x)
{
    int nrap = 0;
    for (int i = p; i <= x; i *= p)
        nrap += x/i;
    return nrap;
}
int main()
{
    cin >> a >> b >> c >> p;

    cout << nrdivP(a) - nrdivP(b) - nrdivP(c);
    return 0;
}
Comentarii

S-ar putea sa iti placa