projecteuler012 - highly divisible triangular number
/**
*
* projecteuler012 - highly divisible triangular number
*
* The sequence of triangle numbers is generated by adding the natural
* numbers. So the 7^(th) triangle number would be
* 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28.
* The first ten terms would be
* 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
*
* Let us list the factors of the first seven triangle numbers:
*
* 1: 1
* 3: 1,3
* 6: 1,2,3,6
* 10: 1,2,5,10
* 15: 1,3,5,15
* 21: 1,3,7,21
* 28: 1,2,4,7,14,28
*
* We can see that 28 is the first triangle number to have over five
* divisors. What is the value of the first triangle number to have
* over five hundred divisors?
*/
#include <iostream>
int main(int argc, char *argv[])
{
unsigned int iteration = 1;
unsigned int triangle_number = 0;
unsigned int divisor_count = 0;
unsigned int current_max_divisor_count = 0;
while (true) {
triangle_number += iteration;
divisor_count = 0;
for (int x = 2; x <= triangle_number / 2; x++) {
if (triangle_number % x == 0) {
divisor_count++;
}
}
if (divisor_count > current_max_divisor_count) {
current_max_divisor_count = divisor_count;
std::cout << triangle_number << " has " << divisor_count
<< " divisors." << std::endl;
}
iteration++;
}
return 0;
}