1212 - Sumă Pătrare: Difference between revisions

From Bitnami MediaWiki
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 ==
Se dă numărul natural nenul '''n'''. Să se determine produsul primelor '''n''' pătrate perfecte nenule.
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>

  1. 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>