Highly divisible triangular number
Problem 12 Project Euler
The sequence of triangle numbers is generated by adding the natural numbers. So the 7th 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?
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Problem12
{
static Dictionary> dict = new Dictionary>();
public static void Function()
{
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution */
//var t = Convert.ToInt32(Console.ReadLine());
int[] arr = new int[1001];
int temp = 0, box = 0;
for (int i = 1; i <= 1000; i++)
{
while (temp <= i)
{
box++;
temp = Factor(box * (box + 1) / 2);
}
arr[i] = box * (box + 1) / 2;
}
int test = Convert.ToInt32(Console.ReadLine());
while (test-- > 0)
{
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(arr[n]);
}
}
static int Factor(int a)
{
int count = 0;
if (a == 1)
{
return 1;
}
for (int i = 1; i < Math.Ceiling(Math.Sqrt(a)); i++)
{
if (a % i == 0)
{
count += 2;
}
}
if (Math.Ceiling(Math.Sqrt(a)) == Math.Floor(Math.Sqrt(a)))
{
count++;
}
return count;
}
}
Live Code on Ide One
Comments
Post a Comment