input: Write a function to take two matrices, A and B, and produce a matrix C where each element is the product of the corresponding elements of A and B. If matrices are not of the same shape, return an error message.
  assert elementwiseMultiplication([[3, 4], [1, 2]], [[7, 5], [0, 1]]) == [[21, 20], [0, 2]]
  assert elementwiseMultiplication([[2, 3], [4, 5]], [[1, 0], [0, 1]]) == [[2, 0], [0, 5]]
  assert elementwiseMultiplication([[1, 2], [3, 4]], [[5, 6], [7, 8]]) == [[5, 12], [21, 32]]
  assert elementwiseMultiplication([[1]], [[2]]) == [[2]]
  assert elementwiseMultiplication([[1, 2]], [[1], [2]]) == "Matrices are not of the same shape"
output: def elementwiseMultiplication(A, B):
      if len(A) != len(B) or any(len(rowA) != len(rowB) for rowA, rowB in zip(A, B)):
          return "Matrices are not of the same shape"
      return [[A[i][j] * B[i][j] for j in range(len(A[0]))] for i in range(len(A))]