/** * Which is the first triangle number to have over X divisors? */ public long solveProblem12(long requiredDivisors) { for (int i = 1; i < Integer.MAX_VALUE; i++) { long triangleNumber = getTriangeNumber(i); int divisors = 0; long limit = triangleNumber; // yohn's limit reducerizer for (long c = 1; c < limit; c++) { if (triangleNumber % c == 0) { divisors+=2; limit = triangleNumber / c; } } if (divisors >= requiredDivisors) { return triangleNumber; } } return 0; }