4coder-non-source/test_data/lots_of_files/largest_prime_factor.cpp

67 lines
1.0 KiB
C++

/*
* 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