2015 - Suma Gauss 1

From Bitnami MediaWiki

Cerința[edit | edit source]

Cei n copii din clasa a V-a şi-au ales câte un număr natural dintre numerele de la 1 la n, neavând doi copii acelaşi număr. Fiecare copil a calculat suma numerelor naturale mai mici sau egale cu numărul ales, apoi doamna de mate a calculat suma pătratelor rezultatelor obţinute de copii. Voi trebuie să aflaţi rezultatul obţinut de doamna de mate.

Date de intrare[edit | edit source]

Fișierul de intrare sumagauss1in.txt conține pe prima linie numărul n de copii din clasă.

Date de ieșire[edit | edit source]

Fișierul de ieșire sumagauss1out.txt va conține pe prima linie rezultatul obţinut de doamna de mate.

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

  • 1 ⩽ n ⩽ 500.000.000

Exemplul 1[edit | edit source]

Intrare
sumagauss1in.txt
3
Ieșire
Datele de intrare corespund restricțiilor impuse
sumagauss1out.txt
46

Explicație[edit | edit source]

Numerele calculate de copii sunt 1, 3, 6. Numărul calculat de doamna de mate este 46.

Exemplul 2[edit | edit source]

Intrare
sumagauss1in.txt
500000001
Ieșire
Datele de intrare NU corespund restricțiilor impuse

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 2015 - SumaGauss1

def validare_date(n):

   if not (1 <= n <= 500000000):
       return False
   return True


def rezultat_doamna_de_mate(n):

   suma = 0
   suma_patrate = 0
   for i in range(1, n + 1):
       suma += i
       suma_patrate += suma ** 2
   return suma_patrate


with open("sumagauss1in.txt", "r") as file:

   n = int(file.readline().strip())

if validare_date(n):

   print("Datele de intrare corespund restricțiilor impuse")

else:

   print("Datele de intrare NU corespund restricțiilor impuse")
   exit(0)

with open("sumagauss1out.txt", "w") as file:

   rezultat = rezultat_doamna_de_mate(n)
   file.write(str(rezultat) + "\n")

</syntaxhighlight>