#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,num[200010],ping[200010],s,zhi[200010],mu[200010],s1,ans,a[200010];
void zh(int bian){
int x=bian;
s1=0;
for(int i=2;i*i<=x;i++){
if(x%i==0){
s1++;
zhi[s1]=i;
int tmp=0;
mu[s1]=0;
while(x%i==0){
x/=i;
mu[s1]++;
}
}
}
if(x!=1){
s1++;
mu[s1]=0;
zhi[s1]=x;
mu[s1]++;
}
int tmp=1,qwq=1;
for(int i=1;i<=s1;i++){
if(mu[i]%2){
tmp*=zhi[i];
}
}
qwq=tmp;
if(tmp==1){
for(int i=1;i<=s;i++){
if(ping[i]==bian){
ans+=(num[bian]-1)*num[bian];
}
else{
ans+=num[bian]*num[ping[i]];
}
}
return ;
}
while(1){
if(tmp>200000)
return ;
for(int i=1;i<=s;i++){
if(tmp*ping[i]>200000)
break;
if(tmp*ping[i]==bian)
ans+=num[bian]*(num[bian]-1);
else
ans+=num[tmp*ping[i]]*num[bian];
}
tmp*=qwq*qwq;
if(tmp>200000)
return ;
}
return ;
}
signed main(){
cin>>n;
for(int i=1;i*i<=200000;i++)
s++,ping[i]=i*i;
for(int i=1;i<=n;i++){;
cin>>a[i];
}
for(int i=1;i<=n;i++){
if(a[i]==0){
ans+=(n-i);
continue;
}
num[a[i]]++;
zh(i);
}
cout<<ans;
}