#581 · Subiectul II · Programare
Numărul prim cu cele mai multe cifre pare dintr-o matrice (prim și contorizare recursiv)
✓ Rezolvare explicatăBucurești 2020 · nr. 9
Enunț
Fișierul atestat.in conține pe prima linie un număr natural n (2≤n≤20), iar pe următoarele n linii câte n numere naturale nenule cu cel mult 9 cifre, separate prin spațiu.
Se consideră subprogramele:
prim, cu un singur parametrux(număr natural nenul cu cel mult 9 cifre): returnează1dacăxeste prim, altfel0;contorizare(implementat recursiv), cu un singur parametruy(număr natural nenul cu cel mult 9 cifre): returnează numărul cifrelor pare ale luiy.
a. Scrieți definiția completă a subprogramului prim.
b. Scrieți definiția completă a subprogramului contorizare.
c. Scrieți un program care citește datele din atestat.in și, folosind apeluri utile ale subprogramelor prim și contorizare, scrie în atestat.out, pe prima linie, numărul prim din matrice cu cele mai multe cifre pare, iar pe a doua linie numărul acestor cifre. Dacă mai multe prime au același număr maxim de cifre pare, se scrie cel mai mic dintre ele. Dacă în matrice nu există niciun număr prim sau numerele prime nu au cifre pare, se scrie mesajul nu exista.
Exemple
Subiectul dă un exemplu cu rezultatul 421 și 2, dar matricea din PDF nu se poate reconstitui complet (apar doar 20 de valori pentru n = 5). Tabelul de mai jos folosește un exemplu construit pe baza valorilor vizibile:
atestat.in |
atestat.out |
Explicații |
|---|---|---|
512 23 28 29 902 54 101 121 71096 41 9 607 102220 34 32 421 63 10 14 16 15 |
4212 |
607 și 421 sunt prime și au câte 2 cifre pare; se alege cel mai mic, 421 |
Rezolvare
Exersează mai departe