anagrame

Sa consideram C un cuvânt format numai din litere mici ale alfabetului englez.
O anagrama a cuvântului C este un cuvânt format din literele lui C considerate eventual într-o alta ordine.
De exemplu, "armata" este o anagramã a cuvântului "tamara".
Dar cuvântul "maree" nu este o anagrama a cuvântului "amare".
Un cuvânt este o anagrama a lui însusi.

Cerinta

Scrieti un program care sa determine cate anagrame distincte admite un cuvant dat. Deoarece acest numãr poate fi foarte mare, se va afisa descompunerea sa în factori primi.

Date de intrare

Fisierul de intrare anagrame.in contine pe prima linie cuvantul dat.

Date de iesire

Fisierul de iesire anagrame.out va contine descompunerea în factori primi a numãrului de anagrame ale cuvântului din fisierul de intrare. Pe fiecare linie va fi scris un divizor prim urmat de un singur spatiu, apoi de multiplicitatea acestui divizor (numar natural nenul). Divizorii vor fi scrisi în ordine strict crescatoare.

Restrictii si precizari

Exemple
anagrame.in anagrame.out Explicatie anagrame.in anagrame.out

amar

2 2
3 1
Anagramele distincte ale cuvântului amar sunt:
aamr, aarm, amar, amra, aram, arma, maar, mara, mraa, raam, rama, rmaa
În total sunt 12=22*31 anagrame.

informatician 2 7
3 4
5 2
7 1
11 1
13 1

Timp maxim de executie/test: 0.1 secunde

prof. Emanuela Cerchez
Liceul de Informatica "Grigore Moisil" Iasi
Contact:emanuela.cerchez@gmail.com