0405 - Suma Cifre Nr Prime

From Bitnami MediaWiki
Revision as of 18:49, 24 March 2023 by Paul Matei (talk | contribs) (Pagină nouă: == Cerinţa == Se dă un șir cu '''n''' numere naturale. Determinați suma tuturor cifrelor numerelor prime din șir. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale. == Date de ieşire == Programul afișează pe ecran numărul '''S''', reprezentând suma tuturor cifrelor numerelor prime din șir. == Restricții și precizări == * '''1 ≤ n ≤ 1000''' *cele '''n''' numere citite vor fi mai mici decât '''1.000.0...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

Se dă un șir cu n numere naturale. Determinați suma tuturor cifrelor numerelor prime din șir.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale.

Date de ieşire

Programul afișează pe ecran numărul S, reprezentând suma tuturor cifrelor numerelor prime din șir.

Restricții și precizări

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

Exemplu

Intrare
6

83 36 53 401 90 7

Ieșire
31

Explicație

Dintre cele 6 numere citite sunt prime : 83 53 401 7. Suma cifrelor acestor numere este 31.

Rezolvare

<syntaxhighlight lang="python" line> def is_prime(n):

   """Verifică dacă un număr este prim."""
   if n < 2:
       return False
   for i in range(2, int(n ** 0.5) + 1):
       if n % i == 0:
           return False
   return True


def validare_date(lista):

   """Verifică dacă toate elementele din lista sunt numere naturale."""
   for numar in lista:
       if numar < 0:
           return False
   return True


n = int(input("Introduceți numărul de elemente din șir: ")) lista_numere = [] for i in range(n):

   numar = int(input("Introduceți numărul: "))
   lista_numere.append(numar)

if not validare_date(lista_numere):

   print("Datele introduse nu sunt valide.")

else:

   suma_cifre_prime = 0
   for numar in lista_numere:
       if is_prime(numar):
           cifre = [int(cifra) for cifra in str(numar)]
           suma_cifre_prime += sum(cifre)
   print("Suma cifrelor numerelor prime din șir este:", suma_cifre_prime)


</syntaxhighlight>