#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// using namespace __gnu_pbds;
using namespace std;
typedef long long int ll;
// typedef vector<int> vi;
// typedef pair<int,int> pi;
/*After this, we can define a data structure indexed_set that is like set but can be
indexed like an array. The definition for int values is as follows:*/
// typedef tree<int,null_type,less<int>,rb_tree_tag,
// tree_order_statistics_node_update> indexed_set;
 
#define out cout<<"\n" 
// #define mnum pow(10,9)+7
// #define F first
// #define S second
// #define PB push_back
// #define MP make_pair
// #define f(i,n) for(i==;i<n;i++)
 
// Think before writing code,it saves lot of time and gives clarity
// Don't be sad you can do it _shiv_,its ok if u can't
ll max(ll a,ll b) { if(a>b) return a; return b; }
ll min(ll a,ll b) { if(a<b) return a; return b; }
bool cmp(ll a,ll b){return a>b; }
ll gcd(ll a,ll b) {if(a%b==0)return b; return gcd(b,a%b); }
int prime(int a) { 
    if(a==1||a==2) 
        return 0; 
    int arr[a+1]; 
    int ans=0;
        for(int i=2;i<=a;i++)
            arr[i]=1;
        
        for(int i=2;i*i<a;i++) {
            if(arr[i]==0) continue;
            for(int j=i*i;j<a;j+=i) {
                arr[j]=0;
            }
        }
        for(int i=2;i<a;i++) {
            if(arr[i]==1) ans++;
        }
         return ans;  
    }
 
 
void init_code() {
 
#ifndef ONLINE_JUDGE
 
freopen("input.txt", "r", stdin);
 
freopen("output.txt", "w", stdout);
 
#endif // ONLINE_JUDGE
 
} 


 
int main() {
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
init_code();
ll c,d,t,i,j,k,n,l,p,k1,k2,y,z,r,k3,q,w,h,A,B,a,b,m;
cin>>t;
while(t--) {
    cin>>n;
    ll arr[n+1];
    vector<pair<ll,ll> > v1,v2,v3;
    for(i=1;i<=n;i++) {
        cin>>a;
        // if(i>a) {
            v1.push_back(make_pair(a,i));
        // }
        // else if(i==a) {
        //     v2.push_back(make_pair(a,i));
        // }
        // else if(i<a){
        //     v3.push_back(make_pair(a,i));
        // }
    }
    ll ans=0;
    sort(v1.begin(),v1.end());
    // sort(v2.begin(),v2.end());
    // sort(v3.begin(),v3.end());
    for(k=0;k<v1.size();k++) {
        a=v1[k].first;
        i=v1[k].second;
        for(l=k+1;l<v1.size();l++) {
            c=v1[l].first;
            d=v1[l].second;
            if(c*a>(2*n-1)) {
                break;
            }
            if(a*c==i+d) {
                ans++;
            }
        }

    }
    // for(k=0;k<v2.size();k++) {
    //     a=v2[k].first;
    //     i=v2[k].second;
    //     for(l=0;l<v1.size();l++) {
    //         c=v1[l].first;
    //         d=v1[l].second;
    //         if(c*a>(2*n-1)) {
    //             break;
    //         }
    //         if(a*c==i+d)
    //             ans++;
    //     }
    // }
    // out;
    cout<<ans;
    out;
}
return 0;
} 