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
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