0510 - Sort Prime
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.