3985 - Suma C2: Difference between revisions

From Bitnami MediaWiki
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 dă numărul natural nenul '''n'''. Să se determine produsul primelor '''n''' pătrate perfecte nenule.
Se dau '''n''' numere naturale. Calculați suma celor care au exact două cifre.
 
== 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:41, 19 March 2023

Sursa: [1]

Cerinţa

Se dau n numere naturale. Calculați suma celor care au exact două cifre.

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

  • 1 ⩽ n ⩽ 1000
  • cele n numere citite vor fi mai mici decât 1.000.000.000.

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
1001
Ieșire
Eroare: Numărul n trebuie să fie între 1 și 1000.


Rezolvare

<syntaxhighlight lang="python" line>

  1. 3985

def suma_doua_cifre(numere):

   S = 0
   for num in numere:
       if len(str(num)) == 2:
           S += num
   return S

try:

   n = int(input("Introduceți numărul de numere naturale (1 ≤ n ≤ 1000): "))
   if not (1 <= n <= 1000):
       raise ValueError("Numărul n trebuie să fie între 1 și 1000.")

except ValueError as e:

   print("Eroare:", e)

else:

   numere = []
   for i in range(n):
       try:
           num = int(input("Introduceți un număr natural mai mic decât 1.000.000.000: "))
           if num >= 1000000000:
               raise ValueError("Numărul trebuie să fie mai mic decât 1.000.000.000.")
       except ValueError as e:
           print("Eroare:", e)
           break
       else:
           numere.append(num)
   S = suma_doua_cifre(numere)
   print("Suma numerelor cu două cifre este:", S)


</syntaxhighlight>