Is long long time consuming

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;

}

You don’t use long long in your solution … also, it passes if I submit it