Divide et Impera

Rezolvarea problemelor de matematica prin realizarea unor programe.
baiatul122001
utilizator
utilizator
Mesaje: 86
Membru din: 27 Ian 2017, 17:05

Divide et Impera

Mesaj de baiatul122001 » 16 Mar 2018, 17:09

În lumea lui Nano totul se construiește la nivel atomic. Știința a ajuns așa departe încât poate construi ”plăci” dreptunghiulare de atomi în care aceștia sunt aliniați perfect, pe un singur strat, formând un rastru. Nano dorește să comande la o firmă plăci pătrate de dimensiuni mari. Dimensiunile sunt atât de mari încât numărul de atomi dintr-o placă poate să fie scris cu până la 500 cifre. Firma i-a dat o listă cu bucățile de material de care dispune, pentru fiecare bucată fiind cunoscut numărul de atomi componenți, urmând ca Nano să aleagă doar acele bucăți din care se pot construi plăci pătrate.

Cerința
Scrieți un program care citind numărul de atomi ai fiecărei bucăți de material din fișierul nano.in scrie în fișierul nano.out doar bucățile de material din care se pot face plăcile dorite de Nano.

Date de intrare
Pe prima linie a fișierului nano.in se află numărul natural n ce reprezintă numărul de bucăți de material, iar pe următoarele 2*n rânduri perechi de numere x y: x reprezentând numărul de cifre a lui y, y fiind numărul de atomi dintr-o bucată de material.

Date de ieșire
Se vor scrie în fișierul nano.out acele valori y din care se pot construi plăci pătrate.

Restricții și precizări
1 < n < 50
0 < x < 501
În fișier se află cel puțin o bucată de material ce respectă cerințele lui Nano
Exemplu
nano.in

3
2
39
3
100
11
15241383936
nano.out

100
15241383936
Explicație
În fişierul nano.in există 3 numere, primul având 2 cifre, al doilea 3 cifre şi ultimul 11 cifre. Din bucata cu 100 atomi se poate face o placă pătrată de latură 10 iar din bucata de dimensiune 15241383936 se obține o placă de latură 123456

Scrie răspuns
  • Subiecte similare
    Răspunsuri
    Vizualizări
    Ultimul mesaj