# Highly divisible triangular number.Project euler #12.What is wrong in the solution

My code in java for this is :

import java.io.;
import java.util.
;

public class Solution {

``````public static long tri(int n ){

return n*(n+1)/2;
``````

}

``````public static long factors(long a){

if (a == 1)return 1;

int i = 2;

long res =0 ;

while(i*i<a){

if(a%i==0){

res+=2;

}

i++;

}

if(i*i == a){

res+=1;

}

return res;

}

public static void main(String[] args) {

/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named
``````
``````Solution. */

Scanner sc = new Scanner(System.in);

long[] a = new long[1001];

a[1] = 1;

for(int i =2;i<1001;i++){

a[i] = tri(i);

}

long[] b = new long[1001];

b[1] = 1;

for(int i =2;i<1001;i++){

b[i] = 2;

}

for(int i =2;i<1001;i++){

b[i]+=factors(a[i]);

}

int t = sc.nextInt();

``````
``````    while(t-->0){

int n = sc.nextInt();

for(int i = 0;i<1001;i++){

if(n<b[i]){

System.out.println(a[i]);

break;

}

}

}

}
``````

}
Showing wrong answer for all test cases except the first three.