Fie n un număr natural nenul, n > 1. Definim n(p) ca fiind descompunerea lui n în sumă de puteri naturale distincte ale numărului prim p.
Exemple:
- pentru
n=10toaten(p)descompunerile posibile sunt:10(2)=21+23şi10(3)=30+32 - pentru
n=11toaten(p)descompunerile posibile sunt:11(2)=20+21+23şi11(11)=111
Cerința
Să se scrie un program care citeşte un număr natural n şi determină toate n(p) descompunerile numărului n.
Date de intrare
Fișierul de intrare desc.in conține pe prima linie numărul n.
Date de ieșire
Fișierul de ieșire desc.out va conține pe linii separate toate n(p) descompunerile numărului n. Fiecare linie va conţine în ordine:
- o valoare naturală
preprezentând numărul prim asociat descompunerii; - o valoare naturală
k, reprezentând numărul de termeni ai descompunerii; - Următoarele
kvalori, numere naturale, reprezintă exponenţii puterilor din descompunere, scrise în ordine crescătoare.
Restricții și precizări
2 ≤ n ≤ 10 000 000- Pentru un număr prim
pfixat, există o singurăn(p)descompunere a unui număr naturaln; - Descompunerile vor fi afişate în ordinea crescătoare a valorilor identificate pentru
p; - Pe fiecare linie a fişierului de ieşire, valorile vor fi despărţite prin câte un spaţiu.
Exemplu:
desc.in
10
desc.out
2 2 1 3 3 2 0 2
Explicație
10(2)=21+23; 10(3)=30+32. Prima descompunere s-a făcut după numărul prim p=2 şi conţine 2 termeni cu puterile 1 şi 3. A doua descompunere s-a făcut după numărul prim p=3 şi conţine 2 termeni cu puterile 0 şi 2.
Exemplu:
desc.in
11
desc.out
2 3 0 1 3 11 1 1
Explicație
11(2)=20+21+23; 11(11)=111. Prima descompunere s-a făcut după numărul prim p=2 şi conţine 3 termeni cu puterile 0, 1 şi 3. A doua descompunere s-a făcut după numărul prim p=11 şi conţine un termen cu puterea 1.