#582 · Subiectul II · Programare
Media numerelor prime din șirul lui Fibonacci aflate într-o matrice (fibo și divprim)
✓ Rezolvare explicatăBucurești 2020 · nr. 10
Enunț
În fișierul atestat.in, pe prima linie se află două numere n și m (2≤n,m≤20), numărul de linii și de coloane ale unui tablou bidimensional, iar pe următoarele n linii câte m numere naturale mai mici sau egale cu 200.
Se consideră subprogramele:
fibo, care primește prin parametrulnun număr natural (1≤n≤200) și furnizează prin parametrulxo valoare naturală: cel mai mic număr mai mic sau egal cuncare face parte din șirul lui Fibonacci;divprim, care primește prin parametrulaun număr natural (2≤a≤200) și returnează cel mai mic divizor prim al luia.
a. Scrieți definiția completă a subprogramului fibo.
b. Scrieți definiția completă a subprogramului divprim.
c. Scrieți programul care citește datele din atestat.in și, folosind apeluri utile ale subprogramelor fibo și divprim, scrie în atestat.out media aritmetică a elementelor tabloului care sunt numere prime și fac parte din șirul lui Fibonacci; dacă nu există niciun astfel de număr, se scrie mesajul nu exista.
⚠️ Inconsecvență în enunț. „Cel mai mic număr ≤ n din șirul lui Fibonacci” este întotdeauna
1, decifibonu ar spune nimic despren. Rezolvarea citește definiția ca „cel mai mare număr Fibonacci ≤ n”: așa,neste în șir exact cândfiboîl returnează penînsuși, iar exemplul oficial dă rezultatul cerut.
Exemple
atestat.in |
atestat.out |
Explicații |
|---|---|---|
3 49 7 21 413 8 2 628 3 10 5 |
5.75 |
Prime din șirul Fibonacci: 13, 2, 3, 5; (13+2+3+5)/4 = 5.75 |
Rezolvare
Exersează mai departe