0405 - Suma Cifre Nr Prime
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>