desc

Time limit: 0.01s Memory limit: 32MB Input: desc.in Output: desc.out

Fie n un număr natural nenul, n>1n > 1. Definim n(p)n(p) ca fiind descompunerea lui nn în sumă de puteri naturale distincte ale numărului prim pp. Exemple:

  • pentru n=10n=10 toate n(p)n(p) descompunerile posibile sunt: 10(2)=21+2310(2)=2^1+2^3 şi 10(3)=30+3210(3)=3^0+3^2
  • pentru n=11n=11 toate n(p)n(p) descompunerile posibile sunt: 11(2)=20+21+2311(2)=2^0+2^1+2^3 şi 11(11)=11111(11)=11^1.

Cerinţă

Să se scrie un program care citeşte un număr natural nn şi determină toate n(p)n(p) descompunerile numărului nn.

Date de intrare

Fişierul de intrare desc.in conţine pe primul rând numărul natural nn.

Date de ieșire

Fişierul de ieşire desc.out va conţine pe linii separate toate n(p)n(p) descompunerile numărului nn. Fiecare linie va conţine în ordine:

  • o valoare naturală pp reprezentând numărul prim asociat descompunerii;
  • o valoare naturală kk, reprezentând numărul de termeni ai descompunerii;
  • Următoarele kk valori, numere naturale, reprezintă exponenţii puterilor din descompunere, scrise în ordine crescătoare.

Restricții și precizări

  • 2n10 000 0002 \leq n \leq 10 \ 000 \ 000;
  • Pentru un număr prim pp fixat, există o singură n(p)n(p) descompunere a unui număr natural nn;
  • Descompunerile vor fi afişate în ordinea crescătoare a valorilor identificate pentru pp;
  • Pe fiecare linie a fişierului de ieşire, valorile vor fi despărţite prin câte un spaţiu;

Exemplul 1

desc.in

10

desc.out

2 2 1 3
3 2 0 2

Explicație

10(2)=21+2310(2)=2^1+2^3 ; 10(3)=30+3210(3)=3^0+3^2. Prima descompunere s-a făcut după numărul prim p=2p=2 şi conţine 22 termeni cu puterile 11 şi 33; A doua descompunere s-a făcut după numărul prim p=3p=3 şi conţine 22 termeni cu puterile 00 şi 22.

Exemplul 2

desc.in

11

desc.out

2 3 0 1 3
11 1 1

Explicație

11(2)=20+21+2311(2)= 2^0+2^1+2^3; 11(11)=11111(11)=11^1. Prima descompunere s-a făcut după numărul prim p=2p=2 şi conţine 33 termeni cu puterile 00, 11 şi 33; A doua descompunere s-a făcut după numărul prim p=11p=11 şi conţine un termen cu puterea 11.

Log in or sign up to be able to send submissions!