0404 - Cifre Nr Prime

From Bitnami MediaWiki
Revision as of 18:32, 24 March 2023 by Paul Matei (talk | contribs) (Pagină nouă: == 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 m...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>