""" Problem: The prime factors of 13195 are 5,7,13 and 29. What is the largest prime factor of a given number N? e.g. for 10, largest prime factor = 5. For 17, largest prime factor = 17. """ from __future__ import print_function, division try: raw_input # Python 2 except NameError: raw_input = input # Python 3 def solution(n): """Returns the largest prime factor of a given number n. >>> solution(13195) 29 >>> solution(10) 5 >>> solution(17) 17 >>> solution(3.4) 3 >>> solution(0) Traceback (most recent call last): ... ValueError: Parameter n must be greater or equal to one. >>> solution(-17) Traceback (most recent call last): ... ValueError: Parameter n must be greater or equal to one. >>> solution([]) Traceback (most recent call last): ... TypeError: Parameter n must be int or passive of cast to int. >>> solution("asd") Traceback (most recent call last): ... TypeError: Parameter n must be int or passive of cast to int. """ try: n = int(n) except (TypeError, ValueError) as e: raise TypeError("Parameter n must be int or passive of cast to int.") if n <= 0: raise ValueError("Parameter n must be greater or equal to one.") prime = 1 i = 2 while i * i <= n: while n % i == 0: prime = i n //= i i += 1 if n > 1: prime = n return int(prime) if __name__ == "__main__": print(solution(int(raw_input().strip())))