0510 - Sort Prime

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

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.