void findFactor(bint n,int k) { if(n==1)return; if(miller_rabin(n, TIME)) { factor[++fac_top] = n; return; } bint p = n; while(p >= n) p = pollard_rho(p,k--); findFactor(p,k); findFactor(n/p,k); }
int main() { boost::uint64_t limit = 600851475143; while(limit != 1) findFactor(limit); std::cout << limit << std::endl; return 0; }
void findFactor (long long int num) { long long int counter = 2; for (; counter <= num; ++counter) { if ( num % counter == 0 ) { printf("%lli ", counter); findFactor ( num / counter ); break; } } }
int main (void) { long long int num; printf ("Enter a number: "); scanf ("%lli", &num); findFactor (num); printf("\n"); return 0; }
int maxfactor(const int a) { return findFactor (a, a/2); }
int findFactor (const int a, const int i) { if (a%i == 0) return i; else return findFactor(a, i-1); }