3350 - Prime 2

From Bitnami MediaWiki

Cerinţa[edit | edit source]

Se dau nr numere naturale. Determinați câte dintre ele sunt prime.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul nr, iar apoi nr numere naturale.

Date de ieşire[edit | edit source]

Programul va afișa pe ecran numărul numere_prime, reprezentând câte dintre numerele citite sunt prime.

Restricții și precizări[edit | edit source]

  • nr ∈ Ν
  • 1 ⩽ nr ⩽ 1.000
  • cele nr numere citite vor fi mai mici decât 1.000.000.000

Exemplu1[edit | edit source]

Intrare
5
11 25 3 4 1
Ieșire
Datele de intrare corespund restricțiilor impuse.
2

Explicație[edit | edit source]

Dintre cele 5 numere citite sunt prime numerele 11 și 3.

Exemplu2[edit | edit source]

Intrare
4
3 23 8 7
Ieșire
Datele de intrare corespund restricțiilor impuse.
3

Explicație[edit | edit source]

Dintre cele 4 numere citite sunt prime numerele 3, 23 și 7.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def validare_date(nr, numere):

   flag = False
   if 0 < int(nr) <= 1000:
       flag = all(isinstance(x, int) and 1 <= x <= 1_000_000_000 for x in numere)
   return flag


def verif_prim(n):

   if n <= 1:
       return False
   else:
       for i in range(2, int(n ** 0.5) + 1):
           if n % i == 0:
               return False
       else:
           return True


def numarare_prim(numere):

   numere_prime = 0
   for numar in numere:
       if verif_prim(numar):
           numere_prime += 1
   print(numere_prime)


if __name__ == '__main__':

   nr = int(input())
   numere = list(map(int, input().split()))
   if validare_date(nr, numere):
       print("\nDatele de intrare corespund restrictiilor impuse.\n")
       numarare_prim(numere)
   else:
       print("Datele de intrare nu corespund restrictiilor impuse.")

</syntaxhighlight>

Explicație[edit | edit source]

Acest cod are ca scop să primească o listă de numere și să numere câte dintre ele sunt numere prime. Funcția validare_date(nr, numere) verifică dacă numărul de numere și dacă fiecare dintre acestea corespund restricțiilor impuse. Dacă acesta este cazul, funcția numarare_prim(numere) verifică fiecare număr din listă și, dacă este prim, incrementează variabila numere_prime. La final, este afișat numărul de numere prime din listă.