#include #include #include long max(long a, long b) { return a > b ? a : b; } long largest_prime_factor(long n) { int p = 2; while(n > 1) { while(p < n && n%p!=0) p++; while(n%p==0) n/=p; } return p; } int main( int argc, char *argv[] ) { assert(largest_prime_factor(13195) == 29); printf("%d\n",largest_prime_factor(600851475143)); return 0; }