def largest_prime_factor(n):
div = 2
max_p_fact = -1
while n != 0:
if n % div != 0:
div += 1
else:
max_p_fact = n
n //= div # Integer division
if n == 1:
break
return max_p_fact
print(largest_prime_factor(124)) # 2 x 2 x 31
print(largest_prime_factor(288)) # 2 x 2 x 2 x 2 x 2 x 3 x 3
print(largest_prime_factor(1288)) # 2 x 2 x 2 x 7 x 23
print(largest_prime_factor(100000000)) # 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5
'''
run:
31
3
23
5
'''