input: Write a function to find the largest prime factor of a given number. The function should return this largest prime factor.
  assert largest_prime_factor(331)==331
  assert largest_prime_factor(13195)==29
  assert largest_prime_factor(600851475143)==6857
  assert largest_prime_factor(29)==29
  assert largest_prime_factor(1)==None
output: def largest_prime_factor(n):
      if n <= 1:
          return None
      factor = 2
      while factor * factor <= n:
          while (n % factor) == 0:
              n //= factor
          factor += 1
      return n if n > 1 else factor - 1