0514 - Sort PIE

From Bitnami MediaWiki

Cerința[edit | edit source]

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[edit | edit source]

Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului.

Date de ieșire[edit | edit source]

Programul va afișa pe ecran valorile cerute, în ordine descrescătoare, separate prin exact un spațiu.

Restricții și precizări[edit | edit source]

  • 1 ≤ n ≤ 1000;
  • cele n numere citite vor fi mai mici decât 1.000.000.000;

Exemplul 1[edit | edit source]

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[edit | edit source]

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

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1">

  1. 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()

</syntaxhighlight>