diff options
Diffstat (limited to 'c/012-highly_divisible_triangular_number.c')
| -rw-r--r-- | c/012-highly_divisible_triangular_number.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/c/012-highly_divisible_triangular_number.c b/c/012-highly_divisible_triangular_number.c new file mode 100644 index 0000000..4ece373 --- /dev/null +++ b/c/012-highly_divisible_triangular_number.c @@ -0,0 +1,35 @@ +#include <stdio.h> +#include <math.h> + + +int triangle_number(int nb) +{ + int i, sum = 0; + for (i = 0; i < nb + 1; i++) + sum += i; + return sum; +} + +int count_divisors(int nb) +{ + int i, div_nb = 0; + for (i = 1; i <= sqrt(nb); i++) { + if (nb % i == 0) + div_nb += (i != nb / i ? 2 : 1); + } + return div_nb; +} + +int main(void) +{ + int i, t_nb; + + for (i = 0;; i++) { + t_nb = triangle_number(i); + if (count_divisors(t_nb) + 2 > 500) + break; + } + printf("%d", t_nb); + + return 0; +} |
