3807 - Sume Gauss De Sume Gauss: Difference between revisions
Dragos1234 (talk | contribs) |
Dragos1234 (talk | contribs) |
||
Line 1: | Line 1: | ||
Sursa: [https://www.pbinfo.ro/probleme/4273/prodpp] | Sursa: [https://www.pbinfo.ro/probleme/4273/prodpp] | ||
== Cerinţa == | == Cerinţa == | ||
Se | Se dau n numere naturale. Pentru fiecare numar '''x''', calculati '''1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...x)'''. | ||
== Date de intrare == | == Date de intrare == | ||
Programul citește de la tastatură numărul '''n'''. | Programul citește de la tastatură numărul '''n'''. |
Revision as of 18:20, 19 March 2023
Sursa: [1]
Cerinţa
Se dau n numere naturale. Pentru fiecare numar x, calculati 1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...x).
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul P , reprezentând produsul primelor n pătrate perfecte nenule, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor."
Restricţii şi precizări
- 0 < n ⩽ 10
Exemplul 1
- Intrare
- 5
- 5 3 2 10 7
- Ieșire
- 35 10 4 220 84
Exemplul 2
- Intrare
- 0
- Ieșire
- Numarul de teste trebuie sa fie intre 1 si 1000000
Rezolvare
<syntaxhighlight lang="python" line>
- 3807
def partial_sum(x):
current_sum = 0 for j in range(1, x+1): current_sum += j return current_sum
def total_sum(x):
sum = 0 for j in range(1, x+1): sum += partial_sum(j) return sum
def validate_n(n):
if not 1 <= n <= 1000000: print("Numarul de teste trebuie sa fie intre 1 si 1000000") raise ValueError
def validate_x(x):
if x >= 4000000: print("Numarul introdus trebuie sa fie mai mic decat 4000000") raise ValueError
if __name__ == "__main__":
n = int(input("Introduceti numarul de teste: ")) validate_n(n)
for i in range(n): x = int(input(f"Introduceti valoarea {i+1}: ")) validate_x(x) print(total_sum(x))
</syntaxhighlight>