Fişierul intrare/ieşire:streetcrypto.in, streetcrypto.outSursăONIS 2015, Runda Finala
AutorMihai CalanceaAdăugată deONIS2015ONIS2015 ONIS2015
Timp execuţie pe test0.25 secLimită de memorie20480 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Street Crypto

Petre Căpraru, student la "Facultatea de Informatică şi Care Era Cealaltă Chestie?", a devenit foarte interesat de studiile pe care prietenul său, Ştefan Şenilă, le face în domeniul criptografiei. Petrică a hotărât astfel să dezvolte un nou algoritm de criptare, pe baza căruia să-şi facă licenţa, doctoratul, poate şi o invitaţie de nuntă când va fi cazul. Algoritmul funcţionează în felul următor:

Petrică vrea să cripteze N numere prime distincte cu valori mai mici sau egale cu 1.000.000.000. Acestea sunt stocate în şirul Prim[]. Pentru a le cripta, el va face următorii paşi:

1. Îşi va alege o permutare aleatoare de lungime N, fie ea P.
2. Va construi un nou şir V obţinut după regula: V[i] = Prim[i] * Prim[P[i]], pentru orice i în [1, N].
3. Dacă elementele lui V sunt distincte, algoritmul se termină. Altfel, se reia pasul 1.

Având la dispoziţie şirul V după ce s-a terminat algoritmul, recuperaţi mulţimea de numere prime, ruinând astfel şansele lui Petrică de a avea un viitor decent.

Date de intrare

Fişierul de intrare streetcrypto.in va conţine pe prima sa linie numărul de teste T. Urmează T teste, fiecare având următorul format: pe prima linie se va afla numărul de valori N urmat pe a doua linie de N valori întregi distincte.

Date de ieşire

În fişierul de ieşire streetcrypto.out se vor afla T linii, pe fiecare linie aflându-se soluţia pentru testul corespunzător, N numere prime afişate în ordine crescătoare.

Restricţii

  • 1 ≤ T ≤ 100
  • 1 ≤ N ≤ 50
  • 1 ≤ V[i] ≤ 1018

Exemplu

streetcrypto.instreetcrypto.out
1
3
10 6 15
2 3 5
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?