3350 - Prime 2: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == Se dau '''nr''' numere naturale. Determinați câte dintre ele sunt prime. == Date de intrare == Programul citește de la tastatură numărul '''nr''', iar apoi '''nr''' '''numere''' naturale. == Date de ieşire == Programul va afișa pe ecran numărul '''numere_prime''', reprezentând câte dintre numerele citite sunt prime. == Restricții și precizări == * '''nr ∈ Ν''' * '''1 ⩽ nr ⩽ 1.000''' * cele '''nr''' '''numere''' citite vor fi mai mic...
 
No edit summary
 
Line 65: Line 65:


</syntaxhighlight>
</syntaxhighlight>
== Explicație ==
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ă.

Latest revision as of 16:31, 28 April 2023

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ă.