0510 - Sort Prime: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == Se dă un vector cu '''n''' elemente, numere naturale. Afișați în ordine crescătoare valorile prime din acest vector. ==Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, reprezentând elementele vectorului. == Date de ieșire == 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 == * 1 ≤ '''n''' ⩽ 1000...
 
Line 12: Line 12:
== Exemplu 1 ==
== Exemplu 1 ==
; Intrare
; Intrare
: 7
7
: 13 1 10 15 3 7 11
13 1 10 15 3 7 11
; Ieșire
; Ieșire
: 3 7 11 13
3 7 11 13
 
==Exemplu 2==
==Exemplu 2==
; Intrare
; Intrare

Revision as of 22:35, 14 November 2023

Cerinţa

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

Date de intrare

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

Date de ieșire

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

  • 1 ≤ n ⩽ 1000

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

Exemplu 1

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

Exemplu 2

Intrare
5
3 10 15 32 5
Iesire
3 5

Rezolvare

<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

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.