0495 - Constr2: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/495/constr2 0495 - Constr2] ---- == Cerinţa == Se dă un vector '''x''' cu '''n''' elemente, numere naturale. Să se construiască un alt vector, '''y''', care să conțină elementele prime din '''x''', în ordine inversă. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, separate prin spaţii, reprezentând elementele vectorului. == Date de ieșire == Dacă datele sunt intr...
 
No edit summary
Line 33: Line 33:


def construirea_vect_y(vector, n):
def construirea_vect_y(vector, n):
     t = []
     vector_prime = []
     contor = 0
     contor = 0
     for i in range(n - 1, -1, -1):
     for i in range(n - 1, -1, -1):
Line 47: Line 47:
                     break
                     break
         if prim:
         if prim:
             t.append(vector[i])
             vector_prime.append(vector[i])
             contor += 1
             contor += 1
     for i in range(0, contor):
     for i in range(0, contor):
         print(t[i], end=' ')
         print(vector_prime[i], end=' ')




Line 69: Line 69:
     return vector, n
     return vector, n


if __name__ == '__main__':
    vector, n = citire_conform_restrictiilor()
    construirea_vect_y(vector, n)


if __name__ == '__main__':
if __name__ == '__main__':

Revision as of 19:13, 23 March 2023

Sursa: 0495 - Constr2


Cerinţa

Se dă un vector x cu n elemente, numere naturale. Să se construiască un alt vector, y, care să conțină elementele prime din x, în ordine inversă.

Date de intrare

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

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează elementele vectorului y, separate prin exact un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".

Restricţii şi precizări

  • 1 ⩽ n ⩽ 200
  • elementele vectorului vor fi cuprinse între 0 și 1.000.000.000

Exemple

Exemplul 1

Intrare
6
50 5 15 29 13 40
Ieșire
Datele sunt introduse corect.
13 29 5

Exemplul 2

Intrare
5
10 2 -3 4 5
Ieșire
Datele nu corespund restricțiilor impuse.


Rezolvare

<syntaxhighlight lang="python" line>

  1. 0495

def construirea_vect_y(vector, n):

   vector_prime = []
   contor = 0
   for i in range(n - 1, -1, -1):
       prim = True
       if vector[i] < 2:
           prim = False
       elif vector[i] % 2 == 0 and vector[i] > 2:
           prim = False
       else:
           for d in range(3, int(vector[i] ** 0.5) + 1, 2):
               if vector[i] % d == 0:
                   prim = False
                   break
       if prim:
           vector_prime.append(vector[i])
           contor += 1
   for i in range(0, contor):
       print(vector_prime[i], end=' ')


def citire_conform_restrictiilor():

   n = int(input())
   if n < 1 or n > 200:
       print("Datele nu corespund restricțiilor impuse.")
       exit()
   vector = list(map(int, input().split()))
   for x in vector:
       if x < 0 or x > 1000000000:
           print("Datele nu corespund restricțiilor impuse.")
           exit()
   if n != len(vector):
       print("Datele nu corespund restricțiilor impuse.")
       exit()
   print("Datele sunt introduse corect.")
   return vector, n


if __name__ == '__main__':

   vector, n = citire_conform_restrictiilor()
   construirea_vect_y(vector, n)

if __name__ == '__main__':

   vector, n = citire_conform_restrictiilor()
   construirea_vect_y(vector, n)








</syntaxhighlight>