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! 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!. 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; }