0510 - Sort Prime

From Bitnami MediaWiki

Cerinţa[edit | edit source]

Se dă un vector cu n elemente, numere naturale. Afișați în ordine crescătoare valorile prime din acest vector.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului.

Date de ieșire[edit | edit source]

Programul va afișa pe ecran valorile prime din vector, în ordine crescătoare, separate prin exact un spațiu.

Restricţii şi precizări[edit | edit source]

  • 1 ≤ n ⩽ 1000

cele n numere citite vor fi mai mici decât 1.000.000.000

Exemplu 1[edit | edit source]

Intrare
7
13 1 10 15 3 7 11
Ieșire
3 7 11 13

Exemplu 2[edit | edit source]

Intrare
5
3 10 15 32 5
Iesire
3 5

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

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

if __name__ == "__main__":

   while True:
       try:
           n = int(input("Introduceti numarul de elemente din vector (1-1000): "))
           if 1 <= n <= 1000:
               break
           else:
               print("Numarul de elemente trebuie sa fie intre 1 si 1000. Va rugam reintroduceti.")
       except ValueError:
           print("Va rugam introduceti un numar valid.")
   vector = []
   for _ in range(n):
       while True:
           try:
               numar = int(input("Introduceti un numar natural: "))
               if numar >= 0 and numar <= 1000000000:
                   vector.append(numar)
                   break
               else:
                   print("Numarul trebuie sa fie intre 0 si 1000000000. Va rugam reintroduceti.")
           except ValueError:
               print("Va rugam introduceti un numar valid.")
   valorile_prime = [numar for numar in vector if este_prim(numar)]
   valorile_prime.sort()  # Sort1ăm valorile prime în ordine crescătoare
   print("Valorile prime din vector, în ordine crescătoare, sunt:")
   print(*valorile_prime)


</syntaxhighlight>

Explicație[edit | edit source]

Programul utilizează funcția este_prim pentru a verifica fiecare număr din vector și pentru a determina care sunt prime. Valorile prime sunt stocate în lista valorile_prime. Apoi, lista valorile_prime este sortată în ordine crescătoare. Aceste valori prime sunt apoi afișate pe ecran, separate prin spațiu.