I am getting TLE although I think I have covered nearly all the test cases , can anyone help ?

import java.util.Arrays;
import java.util.Scanner;

public class Prog {

public static void main(String[] args) {
	// TODO Auto-generated method stub

	Scanner s = new Scanner(System.in);
	int t = s.nextInt();
	while(t-->0)
	{
		int n = s.nextInt();
		long a[]= new long[n];
		for(int i=0;i<n;i++){
			a[i] = s.nextLong();
		}
		Arrays.sort(a);
		int flag = 0;
		int value = -1;
		//for(long disp:a)
		//	System.out.print(disp+" ");
		for(int i=2;i<=a[0]/2;i++)
		{
			//System.out.println("Value of divisor is "+i);
			flag = 0;
			for(int j =0;j<n;j++)
			{
				if(a[j]%i == 0)
				{
			//		System.out.println("a[j]%i == 0 True");
					flag = 1;
				}
				else
				{
				//	System.out.println("a[j]%i == 0 Not True");
					flag = 0;
					break;
				}
			}
				if(flag == 1){
					value = i;
					break;
				}
		}
		if(flag == 1){
			System.out.println(value);
		}
		else
		{
			int obj = 0;
			for(int j=0;j<n;j++){
				if(a[j]% a[0] == 0){
					obj =1;
				}
				else{
					obj = 0;
					break;
				}
			}
			
			if(obj ==1)
			{
				if(a[0] == 1)
					{
					System.out.println(-1);
					}
				else
					{
					System.out.println(a[0]);
						
					}
			}
			else
				System.out.println(-1);
		}
	}
}

}

Question link??