#!/usr/bin/env python # coding: utf-8 # Let $p_i = {2, 3, 4, 5, \dots}$ we continue to divide $c$ by $p_i$. If $c$ becomes 1 then $p_i$ is the greatest prime factor, otherwise we increase $p_i$ by one. We know that any $p_i$ that divides $c$ is prime, because otherwise it would be of the form $p_i = {q_1}^{a_i} \dotsm {q_n}^{a_n}$ and since $q_i$ is smaller than $p_i$, $c$ would have been already divided by it, so $p_i$ must be a prime number. # In[1]: c = 600851475143 p = 2 while c > 1: if c % p == 0: c /= p continue p += 1 p