input: Write a function to find the largest prime factor of a given number. If the input number is 1, return 1. If the number has no prime factors, return the number itself.
  assert largest_prime_factor(331)==331
  assert largest_prime_factor(15)==5
  assert largest_prime_factor(1)==1
  assert largest_prime_factor(29)==29
  assert largest_prime_factor(100)==5
output: def largest_prime_factor(n):
      if n == 1:
          return 1
      largest = n
      for i in range(2, int(n**0.5) + 1):
          while n % i == 0:
              largest = i
              n //= i
      if n > 1:
          largest = n
      return largest