cinnamonandrew

prob1

Jan 9th, 2021 (edited)
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1.  
  2.  
  3. def matrice(nume):
  4. f = open(nume, 'r')
  5.  
  6. linie = f.readline()
  7.  
  8. matrice = []
  9.  
  10. ultim_size = len(linie.split(' '))
  11.  
  12. while linie:
  13. nr = linie.split(' ')
  14.  
  15. # lungime diferit
  16. if ultim_size != len(nr):
  17. return None
  18.  
  19. for i in range(0, len(nr)):
  20. nr[i] = int(nr[i])
  21.  
  22. matrice.append(nr)
  23.  
  24. linie = f.readline()
  25.  
  26. return matrice
  27.  
  28. def elemente_divizibile(matrice, x, *indici):
  29. elemente_coloana = len(matrice)
  30.  
  31. div = []
  32. ndiv = []
  33.  
  34. for ind in indici:
  35. # lista goala ca sa facem intersectie la final
  36. div_linie = []
  37. for i in range(0, elemente_coloana):
  38. if matrice[i][ind] % x == 0:
  39. div_linie.append(matrice[i][ind])
  40. else:
  41. ndiv.append(matrice[i][ind])
  42.  
  43. # facem lista de liste si dupa facem
  44. # intersectia lor in lista div
  45. div.append(div_linie)
  46.  
  47. temp_div = div[0]
  48. for lista in div:
  49. div_nou = []
  50. for nr in temp_div:
  51. if nr in lista:
  52. div_nou.append(nr)
  53. temp_div = div_nou
  54.  
  55. return temp_div, ndiv
  56.  
  57.  
  58. mat = matrice("matrice.in")
  59.  
  60. numere_pare, imp1 = elemente_divizibile(mat, 2, 0, 4)
  61. par1, numere_impare = elemente_divizibile(mat, 2, 0, 1, 2)
  62.  
  63. res = ''
  64. for nr in numere_pare:
  65. res = res + str(nr) + ' '
  66. print(res)
  67. # set face o lista in care nu se pot repeta elemente
  68. print(len(set(numere_impare)))
  69.  
Add Comment
Please, Sign In to add comment