Gigel a aflat la matematică definiția factorialului unui număr natural nenul . Acesta este produsul tuturor numerelor naturale începând cu și terminând cu numărul respectiv și se notează cu . Astfel, factorialul numărului natural este și este egal cu . Factorialele numerelor naturale cresc însă extrem de repede. De exemplu, în timp ce .
Fiind un bun matematician, Gigel a imaginat o altă metodă de a indica factorialul unui număr. Astfel, el știe că un număr natural nenul se poate descompune în factori primi. De exemplu poate fi scris ca . Gigel codifică descompunerea în factori primi astfel: însemnând faptul că în descompunerea lui în factori primi apare factorul de ori, factorul apare de două ori și factorul apare o dată. Cu alte cuvinte, Gigel indică pentru fiecare număr prim puterea la care acesta apare în descompunerea în factori primi a lui .
Cerință
Scrieți un program care să citească o secvență de numere naturale nenule și care să afișeze în modul descris în enunț factorialele numerelor citite.
Date de intrare
Fișierul de intrare factori.in
conține mai multe numere naturale nenule, câte un număr pe linie. Ultima linie a fișierului de intrare conține valoarea indicând faptul că setul de numere s-a terminat.
Date de ieșire
Fișierul de ieșire factori.out
va conține câte o linie pentru fiecare număr nenul din fișierul de intrare. Pe linia din fișierul de ieșire va fi descrisă descompunerea în factori primi a factorialului numărului de pe linia din fișierul de intrare, în modul descris în enunț. Numerele scrise pe aceeași linie vor fi separate prin câte un spațiu.
Restricții și precizări
- Numerele naturale din fișierul de intrare (exceptând ultimul) sunt din intervalul .
- Fișierul de intrare conține maxim numere naturale nenule.
Exemplu
factori.in
2
8
15
10
0
factori.out
1
7 2 1 1
11 6 3 2 1 1
8 4 2 1
Explicație