0405 - Suma Cifre Nr Prime

De la Universitas MediaWiki
Versiunea din 24 martie 2023 18:49, autor: Paul Matei (discuție | contribuții) (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...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

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)