aboutsummaryrefslogtreecommitdiff
path: root/c/012-highly_divisible_triangular_number.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/012-highly_divisible_triangular_number.c')
-rw-r--r--c/012-highly_divisible_triangular_number.c35
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;
+}