Prihlásenie Registrácia  

C - Číslo z prvočísel

Časový limit: 2s, Pamäťový limit: 64MiB

Programovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3

Počet bodov: 1

[ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ]

Zlepením niekoľkých prvočísel (možno len jedného) vznikne jedno "veľké" číslo. Napríklad číslo 7131 vzniklo zlepením prvočísel 71 a 31.

Úloha

Dané je číslo A. Vypíšte takú postupnosť prvočísel (nie väčších ako 1000), aby ich zlepením vzniklo číslo A. Ak taká postupnosť neexistuje vypíšte "no solution".

Vstup

Vstup bude v prvom riadku obsahovať číslo N≤1000, počet čísel na spraovanie.
Po ňom bude nasledovať N riadkov. Každý z týchto riadkov bude obsahovať prirodzené číslo A. Môžete predpokladať, že číslo A má menej ako 200 cifier.

Výstup

Pre každé číslo A zo vstupu vypíšte jeden riadok.
Ak pre číslo A neexistuje rozklad, riadok bude obsahovať reťazec "no solution".
Ak pre číslo A rozklad existuje, vypíšte prvočísla (oddelené medzerou), ktorých zlepením vznikne číslo A.
Ak je riešení viac, vypíšte také, v ktorom je 1. prvočíslo najmenšie. Ak je naďalej riešení viac, vypíšte to z nich, v ktorom je najmenšie 2. prvočíslo ak je ešte stále viac riešení snažte sa o čo najmenšie 3.prvočíslo atď. .

Príklad

Vstup:

5
7131
31432071
323
9
23745976247529742071

Výstup:

7 131
no solution
3 2 3
no solution
no solution