/* * YOUR INFO HERE! */ // FINAL VERSION: unsigned long long largest_prime_factor(unsigned long long n){ unsigned long long lpf, p, s, t; lpf = 1; p = 2; s = 1; t = n / p; while (p <= t){ if (n % p == 0){ lpf = p; n /= p; while (n % p == 0){ n /= p; } } p += s; s = 2; t = n / p; } if (n > lpf){ lpf = n; } return lpf; } #ifdef EULER_PROBLEM // BUILDING AREA: struct Euler_In{ unsigned long long n; }; struct Euler_Result{ unsigned long long lpf; }; static const unsigned long long NUMBER = 600851475143; Euler_Result euler_main(Euler_In in){ Euler_Result result; result.lpf = largest_prime_factor(NUMBER); return result; } void euler_print(Euler_Result answer, Euler_In in){ printf("%llu\n", answer.lpf); } #if 0 #define EULER_CHECK bool euler_check(Euler_Result answer, Euler_In in){ bool result = 1; return result; } #endif #endif