Project Euler: Problem 12

By |

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?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class Problem12 {
 
	static long result = 0;
	 
	public static void solve() {
		long currentnumber = 0;
		long factors = 0;
		long sqrt = 0;
		for (long i = 0; i < Long.MAX_VALUE; i++) {
			currentnumber +=i;
			sqrt = (long)(Math.sqrt(currentnumber));
			for (int j = 1; j < sqrt; j++) {
				if (currentnumber % j == 0) {
					factors+=2;
				}
			}
			if (sqrt*sqrt == currentnumber) {
				factors--;
			}			 
			System.out.println(currentnumber + " has " + factors + " factors");
			if (factors >500) {
				result = currentnumber;
				return;
			}
			factors = 0;
		}
	}
	 
	public static void main(String[] args) {	 
		solve();
		System.out.println(result);
	} 
}

Lösung: 76576500