""" 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. """ 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): 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(input().strip())))