code: 
  from sklearn.datasets import load_iris
  from sklearn.model_selection import train_test_split
  from sklearn.neighbors import KNeighborsClassifier
  
  # Load iris file
  snake_case				:	Tuple							   =						load_iris()
  iris.keys()
  
  
  print(F"Target names: \n {iris.target_names} ")
  print(F"\n Features: \n {iris.feature_names}")
  
  # Train set e Test set
  snake_case   ,snake_case   ,snake_case   ,snake_case				:	Optional[Any]							   =						train_test_split(
      iris["data"], iris["target"], random_state=4
  )
  
  # KNN
  
  snake_case				:	List[Any]							   =						KNeighborsClassifier(n_neighbors=1)
  knn.fit(X_train, y_train)
  
  # new array to test
  snake_case				:	str							   =						[[1, 2, 1, 4], [2, 3, 4, 5]]
  
  snake_case				:	List[str]							   =						knn.predict(X_new)
  
  print(
      F"\nNew array: \n {X_new}\n\nTarget Names Prediction: \n"
      F" {iris['target_names'][prediction]}"
  )
  
  
  
  
  
  
style_context: 
  from __future__ import annotations
  
  snake_case				:	List[str]							   =						"Alexander Joslin"
  
  
  
  
  
  
  def 						lowerCAmelCase_		(      _snake_case   :						int     )       ->	int:
  
  
  
  
  
  
  
  	'''simple docstring'''
  
  
  	if number <= 0:
  		__magic_name__	:	int			     =  F'''n must be greater than 0. Got n = {number}'''
  		raise ValueError(_snake_case     )
  
  	__magic_name__	:	List[str]			     =  [number + 1] * (number + 1)
  
  	# starting position
  	__magic_name__	:	Any			     =  0
  	for i in range(1   ,     _snake_case     ):
  		__magic_name__	:	Optional[int]			     =  min(table[i + 1]   ,     table[i] + 1     )
  		# check if out of bounds
  		if i * 2 <= number:
  			__magic_name__	:	str			     =  min(table[i * 2]   ,     table[i] + 1     )
  		# check if out of bounds
  		if i * 3 <= number:
  			__magic_name__	:	Any			     =  min(table[i * 3]   ,     table[i] + 1     )
  	return table[number]
  
  
  if __name__ == "__main__":
  				import doctest
  
  				doctest.testmod()
  