#include<bits/stdc++.h>
typedef long long int ll;
typedef long double ld;
#define fast ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
#define enddl '\n'
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define pii pair<int,int>
#define full(a) a.begin(),a.end()
#define mem(a,x) memset(a,x,sizeof(a))
const int MAXN = 2*1e5+5;
const int MOD = 1e9+7;
using namespace std;
ll a[MAXN];
map<ll,ll> m1,m2,m3;
int main() {
int n , k ;
cin >> n >> k;
for(int i=1;i<=n;i++) {
cin >> a[i];
}
ll ans = 0;
if(k == 1) {
map<ll,ll> m;
for(int i=1;i<=n;i++) {
m[a[i]]++;
}
for(auto it : m) {
if(it.second >= 3) {
ll x = it.second;
ll temp = x*(x-1)*(x-2);
temp/=6;
ans+=temp;
}
}
cout << ans << endl;
return 0;
}
for(int i=1;i<=n;i++) {
m1[a[i]]++;
if(a[i]%k == 0) {
m2[a[i]]+=(m1[a[i]/k]);
if(a[i]%(k*k) == 0) {
m3[a[i]]+=(m2[a[i]/(k)]);
}
}
}
for(auto it : m3) {
if(it.ff!=0)
ans+=(it.ss);
else
ans+=(it.ss - m1[0]*m1[0]);
}
cout << ans << endl;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KIAp0eXBlZGVmIGxvbmcgbG9uZyBpbnQgbGw7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7CiAKI2RlZmluZSBmYXN0IGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShOVUxMKTsgY291dC50aWUoTlVMTCkKI2RlZmluZSBlbmRkbCAnXG4nCiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIGZ1bGwoYSkgYS5iZWdpbigpLGEuZW5kKCkKI2RlZmluZSBtZW0oYSx4KSBtZW1zZXQoYSx4LHNpemVvZihhKSkKIApjb25zdCBpbnQgTUFYTiA9IDIqMWU1KzU7CmNvbnN0IGludCBNT0QgPSAxZTkrNzsKIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmxsIGFbTUFYTl07Cm1hcDxsbCxsbD4gbTEsbTIsbTM7CiAKaW50IG1haW4oKSB7CglpbnQgbiAsIGsgOwoJY2luID4+IG4gPj4gazsKCWZvcihpbnQgaT0xO2k8PW47aSsrKSB7CgkJY2luID4+IGFbaV07Cgl9CglsbCBhbnMgPSAwOwoJaWYoayA9PSAxKSB7CgkJbWFwPGxsLGxsPiBtOwoJCWZvcihpbnQgaT0xO2k8PW47aSsrKSB7CgkJCW1bYVtpXV0rKzsKCQl9CgkJZm9yKGF1dG8gaXQgOiBtKSB7CgkJCWlmKGl0LnNlY29uZCA+PSAzKSB7CgkJCQlsbCB4ID0gaXQuc2Vjb25kOwoJCQkJbGwgdGVtcCA9IHgqKHgtMSkqKHgtMik7CgkJCQl0ZW1wLz02OwoJCQkJYW5zKz10ZW1wOwoJCQl9CgkJfQoJCWNvdXQgPDwgYW5zIDw8IGVuZGw7CgkJcmV0dXJuIDA7Cgl9Cglmb3IoaW50IGk9MTtpPD1uO2krKykgewoJCW0xW2FbaV1dKys7CgkJaWYoYVtpXSVrID09IDApIHsKCQkJbTJbYVtpXV0rPShtMVthW2ldL2tdKTsKCQkJaWYoYVtpXSUoayprKSA9PSAwKSB7CgkJCQltM1thW2ldXSs9KG0yW2FbaV0vKGspXSk7CgkJCX0KCQl9Cgl9CQoJZm9yKGF1dG8gaXQgOiBtMykgewoJCWlmKGl0LmZmIT0wKQoJCWFucys9KGl0LnNzKTsKCQllbHNlCgkJYW5zKz0oaXQuc3MgLSBtMVswXSptMVswXSk7Cgl9Cgljb3V0IDw8IGFucyA8PCBlbmRsOwogCgkKfQ==