int main(int argc, char const* argv[]) { int i = 1; int j = 2; do { i += j++; } while (divisors_count(i) < 500); printf("%d\n", i); return 0; }
int main() { const prime_t limit = 1000000; auto primes = PrimeNumbers(limit); const size_t divisor_limit = 500; size_t triangular = 0; for(size_t i=1;i<1000000;i++) { triangular += i; auto factors = factorize(triangular, primes); if(divisors_count(factors) > divisor_limit) { std::cout << triangular << std::endl; break; } } return 0; }
int main (int argc, char ** argv) { if (argc != 2) { fprintf (stderr, "usage: %s <N>\n", argv[0]); return 1; } long N = atol (argv[1]); if (N < 0) return 1; while (true) { long triangle_num = next_triangle_num (); if (divisors_count (triangle_num) > N) { printf ("%ld\n", triangle_num); return 0; } } return 0; }
uint32 tau(const num_t n) const { return divisors_count(n); }
uint32 tau(const PrimePowers& pp) const { return divisors_count(pp); }
uint32 divisors_count(const num_t n) const { return divisors_count(this->factor(n)); }