0974 - Resturi: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
Dragos1234 (talk | contribs)
Line 36: Line 36:
         print("Datele introduse nu corespund cerintelor.")
         print("Datele introduse nu corespund cerintelor.")
         exit()
         exit()
       
 


def calc_suma_resturi(n, k):
def calc_suma_resturi(n, k):
Line 46: Line 46:


if __name__ == '__main__':
if __name__ == '__main__':
    try:
         n, k = map(int, input("Introduceti numerele: ").split())
         n, k = map(int, input("Introduceti numerele: ").split())
         validare_numere(n, k)
         validare_numere(n, k)
         suma_resturilor = calc_suma_resturi(n, k)
         suma_resturilor = calc_suma_resturi(n, k)
         print(f"Datele introduse corespund cerintelor.\n{suma_resturilor}")
         print(f"Datele introduse corespund cerintelor.\n{suma_resturilor}")
    except ValueError as e:
        print(e)


</syntaxhighlight>
</syntaxhighlight>


==Explicatie rezolvare==
==Explicatie rezolvare==

Revision as of 17:19, 26 April 2023

Sursa: [1]

Cerinţa

Se dau n și k numere naturale. Calculați suma resturilor împărțirii tuturor numerelor naturale de la 1 la n prin numărul k.

Date de intrare

Programul citește de la tastatură numerele n și k, separate prin spațiu.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: " Datele de intrare corespund restrictiilor impuse", apoi pe un rand nou va afișa valoarea cerută. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse

Restricţii şi precizări

  • 1 ⩽ n, k ⩽ 2.000.000.000

Exemplul 1

Intrare
Introduceti numerele: 7 4
Ieșire
12


Exemplul 2

Intrare
Introduceti numerele: 1000000000000000000000000 1000000000000000000000000000000
Ieșire
n trebuie să fie între 1 și 2.000.000.000


Rezolvare

<syntaxhighlight lang="python" line>

  1. 0974

def validare_numere(n, k):

   if n < 1 or n > 2000000000:
       print("Datele introduse nu corespund cerintelor.")
       exit()
   if k < 1 or k > 2000000000:
       print("Datele introduse nu corespund cerintelor.")
       exit()


def calc_suma_resturi(n, k):

   suma_resturilor = 0
   for i in range(1, n+1):
       suma_resturilor += i % k
   return suma_resturilor


if __name__ == '__main__':

       n, k = map(int, input("Introduceti numerele: ").split())
       validare_numere(n, k)
       suma_resturilor = calc_suma_resturi(n, k)
       print(f"Datele introduse corespund cerintelor.\n{suma_resturilor}")

</syntaxhighlight>

Explicatie rezolvare