1212 - Sumă Pătrare: Difference between revisions
Dragos1234 (talk | contribs) Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/1212/sumapatrate] == Cerinţa == Se dă numărul natural nenul '''n'''. Să se determine produsul primelor '''n''' pătrate perfecte nenule. == 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... |
Dragos1234 (talk | contribs) |
||
Line 1: | Line 1: | ||
Sursa: [https://www.pbinfo.ro/probleme/1212/sumapatrate] | Sursa: [https://www.pbinfo.ro/probleme/1212/sumapatrate] | ||
== Cerinţa == | == Cerinţa == | ||
Fiind dat '''N''', un număr natural nenul, calculați suma '''S=1^2 + 2^2 + 3^2 + ... + n^2''', modulo '''10.234.573'''. | |||
== 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 14:59, 25 March 2023
Sursa: [1]
Cerinţa
Fiind dat N, un număr natural nenul, calculați suma S=1^2 + 2^2 + 3^2 + ... + n^2, modulo 10.234.573.
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
- 4
- Ieșire
- Datele corespund cerințelor.
- 576
Exemplul 2
- Intrare
- 16
- Ieșire
- Datele introduse nu corespund cerințelor.
Exemplul 3
- Intrare
- 7
- Ieșire
- Datele corespund cerințelor.
- 25401600
Rezolvare
<syntaxhighlight lang="python" line>
- 1212
def suma_patrate_modulo(n):
numarator = (n * (n + 1) % 10234573) * ((2 * n + 1) % 10234573) numitor = 6 % 10234573 invers_modular_numitor = pow(numitor, 10234571, 10234573) rezultat = (numarator * invers_modular_numitor) % 10234573 return rezultat
def validare_n(n):
if n < 1 or n > 2000000000: print("n trebuie sa fie intre 1 si 2.000.000.000.") exit()
if __name__ == '__main__':
n = int(input("Introduceti numarul n: ")) validare_n(n) rezultat = suma_patrate_modulo(n) print(f"Rezultatul este: {rezultat}")
</syntaxhighlight>