0495 - Constr2: Diferență între versiuni
De la Universitas 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...) |
Fără descriere a modificării |
||
Linia 33: | Linia 33: | ||
def construirea_vect_y(vector, n): | def construirea_vect_y(vector, n): | ||
vector_prime = [] | |||
contor = 0 | contor = 0 | ||
for i in range(n - 1, -1, -1): | for i in range(n - 1, -1, -1): | ||
Linia 47: | Linia 47: | ||
break | break | ||
if prim: | if prim: | ||
vector_prime.append(vector[i]) | |||
contor += 1 | contor += 1 | ||
for i in range(0, contor): | for i in range(0, contor): | ||
print( | print(vector_prime[i], end=' ') | ||
Linia 69: | Linia 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__': |
Versiunea de la data 23 martie 2023 19:13
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
# 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)