0510 - Sort Prime
De la Universitas MediaWiki
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
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)
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.