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

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 mici decât 1.000.000.000

Exemplu1

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

Explicație

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

Exemplu2

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

Explicație

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

Rezolvare

<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

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