0046 - Sumă Pare

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Sursa: 0046 - Suma Pare


Cerinţa

Să se scrie un program care citește numărul natural numar și determină suma S = 2 + 4 + ... + 2 * numar.

Date de intrare

Programul citește de la tastatură numărul numar

Date de ieșire

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse.", urmat, pe rândul următor, de mesajul: "Suma este: " și suma cerută. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa "Datele de intrare nu corespund restricțiilor impuse.".

Restricţii şi precizări

  • numar ∈ ℕ
  • 0 < numar ⩽ 10.000

Exemplu

Intrare
48
Ieșire
Datele introduse corespund restricțiilor impuse.
Suma este: 2352


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


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


Rezolvare

Rezolvare ver. 1

# 0046 - Suma Pare

def validare_date_numar(numar: str) -> bool:
    if numar.isdigit():
        if 0 < int(numar) <= 10_000:
            return True
    return False


def suma_pare(numar: int) -> int:
    raspuns: int = lambda n: sum([nr for nr in range(0, 2*numar + 1, 2)])
    return raspuns(numar)


if __name__ == "__main__":
    numar = input()
    
    if validare_date_numar(numar):
        numar = int(numar)
        
        print("Datele de intrare corespund restricțiilor impuse.")
        print(f'Suma este: {suma_pare(numar)}')
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")

Rezolvare ver. 2

# 0046 - Suma Pare

def validare_date_numar(numar: str) -> bool:
    if numar.isdigit():
        if 0 < int(numar) <= 10_000:
            return True
    return False


def suma_pare(numar: int) -> int:
    suma: int = 0

    for nr in range(0, 2 * numar + 1, 2):
        suma += nr
    
    return suma


if __name__ == "__main__":
    numar = input()
    
    if validare_date_numar(numar):
        numar = int(numar)
        
        print("Datele de intrare corespund restricțiilor impuse.")
        print(f'Suma este: {suma_pare(numar)}')
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")