I was solving this problem and I got TLE CSES - Common Divisors
the only differnet betwen my solution and Usaco one is that the counter in my loop is long long instead of int . why it gives me TLE ?
here is my solution
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int mod = 1e9 + 7;
#define vi vector
vi divisors(1000005, 0);
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vi a(n,0);
for(int i =0 ;i < n ;i ++)cin>>a[i];
for (int i = 0; i < n; i++) {
    const int up = (int)sqrt(a[i]);
    for (int j = 1;j<=up; j++) {
        if (a[i] % j == 0) {
            if (j  != a[i]/j)divisors[j]++;
            divisors[a[i] / j]++;
        }
    }
}
int ans = 0;
for (int i = 0; i < divisors.size(); i++)
    if (divisors[i] > 1)
        ans = i;
cout<<ans;
}