//#pragma GCC optimize("Ofast")
//#pragma GCC target("avx,avx2,fma")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define MOD 1000000007
#define FOR(i,a,b) for (int i = (a);i <= (b);i++)
#define FOD(i,a,b) for (int i = (b);i >= (a);i--)
#define ALL(x) (x).begin(),(x).end()
#define ii pair<ll,ll>
#define iii pair<ll,pair<ll,int>>
//const int MOD = 998244353;
const int MAXN = 1e6 + 7;
int a[MAXN],prime[MAXN],dd[MAXN];
void sieve(){
FOR(i,2,MAXN)if (!prime[i]){
prime[i] = i;
for (ll j = 1ll * i * i;j <= MAXN;j+=i)prime[j] = i;
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
//freopen("COMNUM.inp","r",stdin);
//freopen("COMNUM.out","w",stdout);
sieve();
int n;cin >> n;
FOR(i,1,n)cin >> a[i];
ll ans = 0;
FOR(i,1,n){
int p = 1;
while (a[i] > 1){
int d = prime[a[i]];
int cnt = 0;
while(a[i] % d == 0){
a[i] = a[i] / d;
cnt++;
}
if (cnt & 1)p = p * d;
}
ans = ans + dd[p];
dd[p]++;
}
cout << ans;
return 0^0;
}
Ly8jcHJhZ21hIEdDQyBvcHRpbWl6ZSgiT2Zhc3QiKQovLyNwcmFnbWEgR0NDIHRhcmdldCgiYXZ4LGF2eDIsZm1hIikKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIEZPUihpLGEsYikgZm9yIChpbnQgaSA9IChhKTtpIDw9IChiKTtpKyspCiNkZWZpbmUgRk9EKGksYSxiKSBmb3IgKGludCBpID0gKGIpO2kgPj0gKGEpO2ktLSkKI2RlZmluZSBBTEwoeCkgKHgpLmJlZ2luKCksKHgpLmVuZCgpCiNkZWZpbmUgaWkgcGFpcjxsbCxsbD4KI2RlZmluZSBpaWkgcGFpcjxsbCxwYWlyPGxsLGludD4+Ci8vY29uc3QgaW50IE1PRCA9IDk5ODI0NDM1MzsKY29uc3QgaW50IE1BWE4gPSAxZTYgKyA3OwppbnQgYVtNQVhOXSxwcmltZVtNQVhOXSxkZFtNQVhOXTsKdm9pZCBzaWV2ZSgpewogICAgRk9SKGksMixNQVhOKWlmICghcHJpbWVbaV0pewogICAgICAgIHByaW1lW2ldID0gaTsKICAgICAgICBmb3IgKGxsIGogPSAxbGwgKiBpICogaTtqIDw9IE1BWE47ais9aSlwcmltZVtqXSA9IGk7CiAgICB9Cn0KaW50IG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICAvL2ZyZW9wZW4oIkNPTU5VTS5pbnAiLCJyIixzdGRpbik7CiAgICAvL2ZyZW9wZW4oIkNPTU5VTS5vdXQiLCJ3IixzdGRvdXQpOwogICAgc2lldmUoKTsKICAgIGludCBuO2NpbiA+PiBuOwogICAgRk9SKGksMSxuKWNpbiA+PiBhW2ldOwogICAgbGwgYW5zID0gMDsKICAgIEZPUihpLDEsbil7CiAgICAgICAgaW50IHAgPSAxOwogICAgICAgIHdoaWxlIChhW2ldID4gMSl7CiAgICAgICAgICAgIGludCBkID0gcHJpbWVbYVtpXV07CiAgICAgICAgICAgIGludCBjbnQgPSAwOwogICAgICAgICAgICB3aGlsZShhW2ldICUgZCA9PSAwKXsKICAgICAgICAgICAgICAgIGFbaV0gPSBhW2ldIC8gZDsKICAgICAgICAgICAgICAgIGNudCsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChjbnQgJiAxKXAgPSBwICogZDsKICAgICAgICB9CiAgICAgICAgYW5zID0gYW5zICsgZGRbcF07CiAgICAgICAgZGRbcF0rKzsKICAgIH0KICAgIGNvdXQgPDwgYW5zOwogICAgcmV0dXJuIDBeMDsKfQ==