




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__ :						Any     =			train_test_split(
    iris['''data'''], iris['''target'''], random_state=4
)

# KNN

snake_case__ :						str     =			KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)

# new array to test
snake_case__ :						Optional[int]     =			[[1, 2, 1, 4], [2, 3, 4, 5]]

snake_case__ :						Optional[Any]     =			knn.predict(X_new)

print(
    F"""\nNew array: \n {X_new}\n\nTarget Names Prediction: \n"""
    F""" {iris["target_names"][prediction]}"""
)










from __future__ import annotations

from collections import Counter


def 						lowercase		(     _lowerCAmelCase      ):
  UpperCAmelCase__    						=   [True] * n
  UpperCAmelCase__    						=   False
  UpperCAmelCase__    						=   False
  UpperCAmelCase__    						=   True

  for i in range(3   ,     int(n**0.5 + 1      )   ,     2      ):
    UpperCAmelCase__    						=   i * 2
    while index < n:
      UpperCAmelCase__    						=   False
      UpperCAmelCase__    						=   index + i

  UpperCAmelCase__    						=   [2]

  for i in range(3   ,     _lowerCAmelCase   ,     2      ):
    if is_prime[i]:
      primes.append(_lowerCAmelCase      )

  return primes


def 						lowercase		(     _lowerCAmelCase      ):
  UpperCAmelCase__    						=   str(_lowerCAmelCase      )
  UpperCAmelCase__    						=   []
  UpperCAmelCase__    						=   ["""0""", """1""", """2""", """3""", """4""", """5""", """6""", """7""", """8""", """9"""]

  for duplicate in Counter(_lowerCAmelCase      ) - Counter(set(_lowerCAmelCase      )      ):
    UpperCAmelCase__    						=   [int(number_str.replace(_lowerCAmelCase   ,     _lowerCAmelCase      )      ) for digit in digits]
    replacements.append(_lowerCAmelCase      )

  return replacements


def 						lowercase		(     _lowerCAmelCase = 8      ):
  UpperCAmelCase__    						=   set()

  # Filter primes with less than 3 replaceable digits
  UpperCAmelCase__    						=   {
      x for x in set(prime_sieve(100_0000      )      ) if len(str(_lowerCAmelCase      )      ) - len(set(str(_lowerCAmelCase      )      )      ) >= 3
  }

  for prime in primes:
    if prime in numbers_checked:
      continue

    UpperCAmelCase__    						=   digit_replacements(_lowerCAmelCase      )

    for family in replacements:
      numbers_checked.update(_lowerCAmelCase      )
      UpperCAmelCase__    						=   primes.intersection(_lowerCAmelCase      )

      if len(_lowerCAmelCase      ) != family_length:
        continue

      return min(_lowerCAmelCase      )

  return -1


if __name__ == "__main__":
   print(solution())




