Î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 ().