3135 - Pătrat Magic 5

From Bitnami MediaWiki
Revision as of 17:52, 15 November 2023 by Hotico Iulia Denisa (talk | contribs) (→‎Exemplul 2)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Un Pătrat Magic este un pătrat ce conține numerele de la 1 la n 2 în care sumele fiecăror linii, coloane și a celor două diagonale sunt egale. Această sumă se mai numește și constanta pătratului magic.

Cerinţa[edit | edit source]

Să citește de la tastatură un număr natural n reprezentând latura pătratului. Să se determine constanta acestuia.

Restricții și precizări[edit | edit source]

  • 3 ⩽ n ⩽ 1290

Exemplul 1[edit | edit source]

Intrare
3
Ieșire
Datele introduse corespund restricțiilor impuse.
15


Exemplul 2[edit | edit source]

Intrare
2
Ieșire
Datele introduse nu corespund restricțiilor impuse.


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 3135 Pătrat Magic 5
  1. Definim funcția de verificare a valorii n


def verificare(valoare_numar):

   # Verificăm dacă n respectă restricțiile problemei
   if 3 <= valoare_numar <= 1290:
       # Dacă valoarea este validă, returnăm valoarea
       return valoare_numar
   else:
       # Dacă valoarea nu este validă, ridicăm o excepție
       raise ValueError


  1. Definim funcția pentru calculul constantei pătratului magic


def constanta_patrat_magic(numar):

   # Calculăm constanta pătratului magic
   constanta = numar * (numar**2 + 1) // 2
   # Returnăm constanta
   return constanta


  1. Verificăm dacă acest script este rulat direct

if __name__ == "__main__":

   try:
       # Citim numărul de la utilizator
       n = input("Introduceți latura pătratului: ")
       # Validăm numărul
       n = verificare(int(n))
       # Dacă numărul este valid, rezolvăm problema
       print("Datele introduse corespund restricțiilor impuse.")
       print(constanta_patrat_magic(n))
   except ValueError:
       # Dacă numărul nu este valid, afișăm un mesaj de eroare
       print("Datele introduse nu corespund restricțiilor impuse.")


</syntaxhighlight>