#1011
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! \over b!\ \cdot \ c! } \) este divizibil cu p, și să se afle exponentul lui p în descompunerea în factori primi a acestui număr.
| Problema | p3factoriale | Operații I/O |
tastatură/ecran
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #64572873 | Utilizator | |
| Fișier | p3factoriale.cpp | Dimensiune | 2.93 KB |
| Data încărcării | 15 Mai 2026, 09:18 | Scor/rezultat | Eroare de compilare |
p3factoriale.cpp: In function ‘long long unsigned int P(int)’: p3factoriale.cpp:15:25: error: ‘MODULO’ was not declared in this scope 15 | suma = (suma * i) % MODULO; | ^~~~~~ p3factoriale.cpp: In function ‘long long unsigned int A(int, int)’: p3factoriale.cpp:23:25: error: ‘MODULO’ was not declared in this scope 23 | suma = (suma * i) % MODULO; | ^~~~~~ p3factoriale.cpp: In function ‘long long unsigned int C(int, int)’: p3factoriale.cpp:28:64: error: ‘MODULO’ was not declared in this scope 28 | unsigned long long C(int n, int k) { return (A(n, k) / P(k)) % MODULO; } | ^~~~~~ p3factoriale.cpp: In function ‘long long unsigned int nrtotalsub(int)’: p3factoriale.cpp:33:25: error: ‘MODULO’ was not declared in this scope 33 | suma = (suma * 2) % MODULO; | ^~~~~~ p3factoriale.cpp: In function ‘long long unsigned int putere(int, int)’: p3factoriale.cpp:53:51: error: ‘MODULO’ was not declared in this scope 53 | puteri[i] = (puteri[i - 1] * puteri[i - 1]) % MODULO; | ^~~~~~ p3factoriale.cpp:58:12: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long long unsigned int’ [-Wsign-compare] 58 | while (b > produs) { | ~~^~~~~~~~ p3factoriale.cpp:64:16: warning: comparison of integer expressions of different signedness: ‘long long unsigned int’ and ‘int’ [-Wsign-compare] 64 | if (produs <= b) { | ~~~~~~~^~~~ p3factoriale.cpp:65:35: error: ‘MODULO’ was not declared in this scope 65 | rez = (rez * puteri[cnt]) % MODULO; | ^~~~~~ p3factoriale.cpp: In function ‘int PB_ceva()’: p3factoriale.cpp:87:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare] 87 | for (int i = 0; i < strlen(n); i++) { | ~~^~~~~~~~~~~ p3factoriale.cpp:88:13: warning: array subscript has type ‘char’ [-Wchar-subscripts] 88 | freq[n[i]]++; | ~~~^ p3factoriale.cpp:91:14: warning: array subscript has type ‘char’ [-Wchar-subscripts] 91 | if (freq[i] > 1) { | ^ p3factoriale.cpp:92:22: warning: array subscript has type ‘char’ [-Wchar-subscripts] 92 | suma /= P(freq[i]); | ^ p3factoriale.cpp:84:7: warning: unused variable ‘k’ [-Wunused-variable] 84 | int k; | ^ p3factoriale.cpp: In function ‘int descompunere_factori_factoriale()’: p3factoriale.cpp:104:33: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long long unsigned int’ [-Wsign-compare] 104 | for (int i = max(b, c) + 1; i <= a; i++) { | ~~^~~~ p3factoriale.cpp:115:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘const long long unsigned int’ [-Wsign-compare] 115 | for (int i = 2; i <= min(b, c); i++) { | ~~^~~~~~~~~~~~ p3factoriale.cpp:128:1: warning: no return statement in function returning non-void [-Wreturn-type] 128 | } | ^ p3factoriale.cpp: In function ‘int main()’: p3factoriale.cpp:138:33: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long long unsigned int’ [-Wsign-compare] 138 | for (int i = max(b, c) + 1; i <= a; i++) { | ~~^~~~ p3factoriale.cpp:145:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘const long long unsigned int’ [-Wsign-compare] 145 | for (int i = 2; i <= min(b, c); i++) { | ~~^~~~~~~~~~~~ p3factoriale.cpp:135:27: warning: unused variable ‘cntc’ [-Wunused-variable] 135 | int cnta = 0, cntb = 0, cntc = 0; | ^~~~
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema p3factoriale face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.