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.