Cerința
Se consideră o matrice pătratică cu n
linii şi n
coloane şi elemente numere naturale distincte. Cele două diagonale delimitează în matrice 4
zone:
NORD
– elementele situate deasupra diagonalei principale şi deasupra celei secundareEST
– elementele situate deasupra diagonalei principale şi sub cea secundarăSUD
– elementele situate sub diagonala principală şi sub cea secundarăVEST
– elementele situate sub diagonala principală şi deasupra celei secundare
Să se determine cele 4 maxime din zonele determinate de cele două diagonale și să se calculeze cel mai mare divizor comun al lor.
Se vor defini și apela următoarele subprograme:
citire
, care citește de la tastatură valoarea luin
și elementele matriceicmmdc
, care calculează cel mai mare divizor comun al două numeremaxime
, care determină cele 4 maxime din zonele determinate de cele două diagonale și le furnizează prin parametri referință. Această funcție poate fi înlocuită cu 4 funcții, câte una pentru fiecare maxim din cele 4 zone din matrice
În programele C/C++ nu se vor folosi variabile globale.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n*n numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieșire
Programul afișează pe ecran cel mai mare divizor comun al celor 4 maxime din zonele determinate de cele două diagonale.
Restricții și precizări
1 ≤ n ≤ 50
- elementele matricei sunt mai mici decât
100000
și sunt distincte
Exemplu:
Date de intrare
5 22 10 11 16 17 4 19 1 8 20 29 12 3 5 6 36 7 9 24 15 13 23 28 14 2
Date de ieșire
4
Explicație
Valorile maxime din cele 4 zone sunt 16 (din nord), 20 (din est) 28 (din sud) și 36 (din vest) iar cel mai mare divizor comun al numerelor 16, 20, 28 și 36 este 4.