import
java.util.*;
class
GFG
{
static
int
countTriplets(
int
a[],
int
m,
int
n)
{
HashMap<Integer, Integer> frequency
=
new
HashMap<>();
Set<String> st =
new
HashSet<String>();
for
(
int
i =
0
; i < n; i++)
{
frequency.put(a[i],(frequency.get(a[i]) ==
null
?
1
:(frequency.get(a[i]) +
1
)));
}
int
ans =
0
;
for
(
int
i =
1
; i * i <= m; i++)
{
if
(m % i ==
0
&& frequency.get(i)!=
null
)
{
int
num1 = m / i;
for
(
int
j =
1
; j * j <= num1; j++)
{
if
(num1 % j ==
0
&& frequency.get(j) !=
null
)
{
int
num2 = num1 / j;
if
(frequency.get(num2) !=
null
)
{
int
temp[] = { num2, i, j };
Arrays.sort(temp);
int
setsize = st.size();
st.add(temp[
0
]+
" "
+ temp[
1
]+
" "
+temp[
2
] );
if
(setsize != st.size())
{
if
(i != j && j != num2)
ans += frequency.get(i) *
frequency.get(j) *
frequency.get(num2);
else
if
(i == j && j != num2)
ans += (frequency.get(i) *
(frequency.get(i) -
1
) /
2
)
* frequency.get(num2);
else
if
(j == num2 && j != i)
ans += (frequency.get(j) *
(frequency.get(j) -
1
) /
2
)
* frequency.get(i);
else
if
(i == j && j == num2)
ans += (frequency.get(i) *
(frequency.get(i) -
1
) *
(frequency.get(i) -
2
) /
6
);
else
ans += (frequency.get(i) *
(frequency.get(i) -
1
) /
2
)
* frequency.get(j);
}
}
}
}
}
}
return
ans;
}
public
static
void
main(String args[])
{
int
a[] = {
1
,
4
,
6
,
2
,
3
,
8
};
int
m =
24
;
int
n = a.length;
System.out.println(countTriplets(a, m, n));
}
}