int main(int argc, int *argv[]) { int min_div_count = 500; int div_count = 0; long triangle = 0; long min_number = 1; long counter = 0; while(div_count <= min_div_count) { counter++; triangle = triangle + counter; div_count = count_divs(triangle); } printf("%ld\n", triangle); return 0; }
int triangle500 (int lim) { int i = 3; int res = count_divs (i) * count_divs ((i+1)/2); while (res <= lim) { i++; if (0 == i%2) { res = count_divs (i/2) * count_divs (i+1); } else { res = count_divs (i) * count_divs ((i+1)/2); } } return i*(i+1)/2; }