0405 - Suma Cifre Nr Prime
De la Universitas MediaWiki
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
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)