AC代码(带注释):
#include<bits/stdc++.h>
#define int long long
#define x first
#define y second
#define all(x) x.begin(), x.end()
#define endl "\n"
#define close() ios::sync_with_stdio(0); cin.tie(0);
using namespace std;
typedef pair<int,int> PII;
void solve()
{
int n,ans=0;
cin>>n;
vector<int>h(n+1);
vector<PII>a(n+1);
for(int i=1;i<=n;i++)cin>>a[i].x;
for(int i=1;i<=n;i++)cin>>a[i].y;
sort(all(a));
for(int i=1;i*i<=2*n;i++)//注意观察值域为n 故 min(a[i],a[j])<=sqrt(2n) 枚举a[i]
{
h.assign(n+1,0);//清桶
for(auto [x,y]:a)//x,y为枚举的a[j],b[j]
{
int k=x*i-y;//k为b[i]
if(1<=k&&k<=n)ans+=h[k];//先if 如果b[i]出现过说明之前a[i](i)也出现过并加上次数
if(i==x)h[y]++;//后if(满足其始终在j的前面,避免重复)存a[i]对应的b[i]的出现次数
}
}
cout<<ans<<endl;
}
signed main()
{
close()
int t=1;
cin>>t;
while(t--)
{
solve();
}
return 0;
}