2015 - Suma Gauss 1

De la Universitas MediaWiki

Cerința

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

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

Date de ieșire

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

  • 1 ⩽ n ⩽ 500.000.000

Exemplul 1

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

Explicație

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

Exemplul 2

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

Rezolvare

#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")