În matematică factorialul unui număr natural nenul este notat cu și este egal cu produsul numerelor naturale nenule mai mici sau egale cu .
Spre exemplu:
- ;
- ;
- ;
- .
Orice număr natural poate fi descompus cu ajutorul numerelor factoriale astfel:
,
unde coeficienții , cu sunt numere naturale și în plus .
Spre exemplu:
- ;
- ;
- .
Dintre toate aceste descompuneri posibile există o singură descompunere, numită descompunere în bază factorială care respectă suplimentar condițiile , cu și .
Spre exemplu:
- ;
- ;
- .
Cerinţă
Scrieți un program care rezolvă următoarele cerințe:
- Să se determine descompunerea în bază factorială a unui număr natural dat.
- Cunoscând o descompunere oarecare a unui număr natural să se determine descompunerea în bază factorială a acestuia.
Date de intrare
Fişierul de intrare este bazaf.in
.
Acesta conţine pe prima linie un număr natural care poate avea doar valorile sau cu următoarea semnificație:
- dacă valoarea lui este , pe a doua linie a fișierului de intrare se găsește un număr natural cu semnificația de mai sus;
- dacă valoarea lui este , pe a doua linie a fișierului de intrare se găsește o descompunere a unui număr sub forma unui șir de valori naturale în care primul termen este , urmat de valori , care respectă condițiile , cu și , despărțite prin câte un spațiu, cu semnificația de mai sus.
Date de ieșire
Fişierul de ieşire este bazaf.out
.
Dacă valoarea lui este atunci fișierul de ieșire va conţine descompunerea în bază factorială a numărului , iar dacă valoarea lui este atunci fișierul de ieșire va conține descompunerea în bază factorială a numărului . Descompunerea în bază factorială presupune scrierea în fișierul de ieșire a unei singure linii sub forma unui șir de valori naturale în care primul termen este , urmat de valori , care respectă condițiile , cu și , despărțite prin câte un spațiu, având semnificația de mai sus.
Restricții și precizări
- Pentru rezolvarea corectă a primei cerință se va acorda din punctaj, iar pentru cea de-a doua cerință se va acorda din punctaj.
Exemplul 1
bazaf.in
1
17
bazaf.out
3 1 2 2
Explicație
, deci se rezolvă doar prima cerință. .
Descompunerea numărului în bază factorială conține termeni și este formată din coeficienții , , ().
Exemplul 2
bazaf.in
2
2 10 5
bazaf.out
3 0 1 3
Explicație
, deci se rezolvă doar a doua cerință.
Descompunerea 2 10 5
este o descompunere cu termeni având coeficienții , și corespunde numărului .
Descompunerea în bază factorială a numărului va fi 3 0 1 3
().