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=10
toaten(p)
descompunerile posibile sunt:10(2)=
2
1
+
2
3
şi10(3)=
3
0
+
3
2
- pentru
n=11
toaten(p)
descompunerile posibile sunt:11(2)=
2
0
+
2
1
+
2
3
şi11(11)=
11
1
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ă
p
reprezentând numărul prim asociat descompunerii; - o valoare naturală
k
, reprezentând numărul de termeni ai descompunerii; - Următoarele
k
valori, 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
p
fixat, 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)=
2
1
+
2
3
; 10(3)=
3
0
+
3
2
. 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)=
2
0
+
2
1
+
2
3
; 11(11)=
11
1
. 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
.