0407 - Oglindit Prim
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
<syntaxhighlight lang="python" line> 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.")
</syntaxhighlight>