0407 - Oglindit Prim
De la Universitas MediaWiki
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.")