0407 - Oglindit Prim

De la Universitas MediaWiki
Versiunea din 25 martie 2023 09:59, autor: Paul Matei (discuție | contribuții) (Pagină nouă: == Cerinţa == Se dă un șir cu '''n''' numere naturale. Determinați suma celor care au oglinditul număr prim. == 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 rezultatul cerut. == 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...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

Cerinţa

Se dă un șir cu n numere naturale. Determinați suma celor care au oglinditul număr prim.

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 rezultatul cerut.

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

133 35 41 31 90 7

Ieșire
206

Explicație

Dintre cele 6 numere citite au oglinditul număr prim: 133 35 31 7. Suma lor este 206.

Rezolvare

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


def reverse_number(num):
    """Returnează oglinditul unui număr."""
    reversed_num = 0
    while num > 0:
        reversed_num = reversed_num * 10 + num % 10
        num //= 10
    return reversed_num


def validate_input(prompt, lower_bound, upper_bound):
    """Solicită introducerea unui număr întreg în intervalul [lower_bound, upper_bound]"""
    while True:
        try:
            num = int(input(prompt))
            if lower_bound <= num <= upper_bound:
                return num
            else:
                print(f"Introduceți un număr întreg în intervalul [{lower_bound}, {upper_bound}]")
        except ValueError:
            print("Introduceți un număr întreg valid.")