0404 - Cifre Nr Prime
Cerinţa
Se dă un șir cu n numere naturale. Determinați numărul total de cifre al tuturor 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 C, reprezentând numărul total de cifre al tuturor 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
- 8
Explicație
Dintre cele 6 numere citite sunt prime : 83 53 401 7. În total, ele au 8 cifre.
Rezolvare
<syntaxhighlight lang="python" line> def is_prime(n):
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_numar(num):
if not num.isdigit(): return False num = int(num) if num >= 1000000000: return False
return True
while True:
n = input("Introduceti numarul de elemente din sir: ") if validare_numar(n): n = int(n) break else: print("Numarul introdus nu este valid. Va rugam introduceti un numar natural mai mic decat 1.000.000.000.")
total_digits = 0
for i in range(n):
while True: num = input("Introduceti un numar: ") if validare_numar(num): num = int(num) break else: print("Numarul introdus nu este valid. Va rugam introduceti un numar natural mai mic decat 1.000.000.000.")
if is_prime(num): total_digits += len(str(num))
print("Numarul total de cifre al numerelor prime din sir este:", total_digits)
</syntaxhighlight>