





'''simple docstring'''


def 		__a(SCREAMING_SNAKE_CASE_					:   list[list[int]]      ):



    '''simple docstring'''





    if len(_lowerCAmelCase      ) == 0 or not all(len(_lowerCAmelCase      ) == 2 for pair in coordinates      ):
        raise ValueError("The program cannot work out a fitting polynomial."      )

    if len({tuple(_lowerCAmelCase      ) for pair in coordinates}      ) != len(_lowerCAmelCase      ):
        raise ValueError("The program cannot work out a fitting polynomial."      )

    _lowerCAmelCase		     = {x for x, _ in coordinates}
    if len(_lowerCAmelCase      ) == 1:
        return F'''x={coordinates[0][0]}'''

    if len(_lowerCAmelCase      ) != len(_lowerCAmelCase      ):
        raise ValueError("The program cannot work out a fitting polynomial."      )

    _lowerCAmelCase		     = len(_lowerCAmelCase      )

    _lowerCAmelCase		     = 0
    _lowerCAmelCase		     = []
    # put the x and x to the power values in a matrix
    while count_of_line < x:
        _lowerCAmelCase		     = 0
        _lowerCAmelCase		     = coordinates[count_of_line][0]
        _lowerCAmelCase		     = []
        while count_in_line < x:
            count_line.append(a ** (x - (count_in_line + 1))      )
            count_in_line += 1
        matrix.append(_lowerCAmelCase      )
        count_of_line += 1

    _lowerCAmelCase		     = 0
    # put the y values into a vector
    _lowerCAmelCase		     = []
    while count_of_line < x:
        vector.append(coordinates[count_of_line][1]      )
        count_of_line += 1

    _lowerCAmelCase		     = 0

    while count < x:
        _lowerCAmelCase		     = 0
        while zahlen < x:
            if count == zahlen:
                zahlen += 1
            if zahlen == x:
                break
            _lowerCAmelCase		     = matrix[zahlen][count] / matrix[count][count]
            for counting_columns, item in enumerate(matrix[count]      ):
                # manipulating all the values in the matrix
                matrix[zahlen][counting_columns] -= item * bruch
            # manipulating the values in the vector
            vector[zahlen] -= vector[count] * bruch
            zahlen += 1
        count += 1

    _lowerCAmelCase		     = 0
    # make solutions
    _lowerCAmelCase		     = []
    while count < x:
        solution.append(str(vector[count] / matrix[count][count]      )      )
        count += 1

    _lowerCAmelCase		     = 0
    _lowerCAmelCase		     = '''f(x)='''

    while count < x:
        _lowerCAmelCase		     = solution[count].split("E"      )
        if len(_lowerCAmelCase      ) > 1:
            _lowerCAmelCase		     = F'''{remove_e[0]}*10^{remove_e[1]}'''
        solved += F'''x^{x - (count + 1)}*{solution[count]}'''
        if count + 1 != x:
            solved += "+"
        count += 1

    return solved


if __name__ == "__main__":
  print(points_to_polynomial([]))
  print(points_to_polynomial([[]]))
  print(points_to_polynomial([[1, 0], [2, 0], [3, 0]]))
  print(points_to_polynomial([[1, 1], [2, 1], [3, 1]]))
  print(points_to_polynomial([[1, 3], [2, 3], [3, 3]]))
  print(points_to_polynomial([[1, 1], [2, 2], [3, 3]]))
  print(points_to_polynomial([[1, 1], [2, 4], [3, 9]]))
  print(points_to_polynomial([[1, 3], [2, 6], [3, 11]]))
  print(points_to_polynomial([[1, -3], [2, -6], [3, -11]]))
  print(points_to_polynomial([[1, 5], [2, 2], [3, 9]]))









'''simple docstring'''


def 		__a(SCREAMING_SNAKE_CASE_					:   int = 1000      ):



    '''simple docstring'''





    return sum(i for i in range(SCREAMING_SNAKE_CASE_      ) if i % 3 == 0 or i % 5 == 0      )


if __name__ == "__main__":
       print(f'''{solution() = }''')


