0514 - Sort PIE

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 descrescătoare valorile din vector care sunt prime cu ultimul element al vectorului.

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 cerute, în ordine descrescă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;

Exemplul 1

Intrare
8
16 7 6 3 1 5 9 14
Ieșire
Datele de intrare corespund restricțiilor impuse.
9 5 3 1

Exemplul 2

Intrare
0
0
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

#0514 - Sort PIE
def sort():
    # citim numarul de elemente din sir, dar si vectorul de la tastatura
    n = int(input())
    a = list(map(int, input().split()))

    # sortam sirul in ordine descrescatoare
    for i in range(n - 2):
        for j in range(i + 1, n - 1):
            if a[i] < a[j]:
                a[i], a[j] = a[j], a[i]

    # verificam restrictiile
    if 1 <= n <= 1000 and max(a) < 1000000000:
        print("Datele de intrare corespund restricțiilor impuse.")
        # parcurgem fiecare element din sir si verificam daca este prim
        for i in range(n - 1):
            x = a[i]
            y = a[-1]
            while y:
                r = x % y
                x = y
                y = r
            if x == 1:
                print(a[i], end=' ')
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")

if __name__ == '__main__':
    # apelam functia 
    sort()