atcoder#AGC003D. [AGC003D] Anticube

[AGC003D] Anticube

Score : 11001100 points

Problem Statement

Snuke got positive integers s1,...,sNs_1,...,s_N from his mother, as a birthday present. There may be duplicate elements.

He will circle some of these NN integers. Since he dislikes cubic numbers, he wants to ensure that if both sis_i and sj(ij)s_j (i \neq j) are circled, the product sisjs_is_j is not cubic. For example, when s1=1,s2=1,s3=2,s4=4s_1=1,s_2=1,s_3=2,s_4=4, it is not possible to circle both s1s_1 and s2s_2 at the same time. It is not possible to circle both s3s_3 and s4s_4 at the same time, either.

Find the maximum number of integers that Snuke can circle.

Constraints

  • 1N1051 \leq N \leq 10^5
  • 1si10101 \leq s_i \leq 10^{10}
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

NN

s1s_1

:

sNs_N

Output

Print the maximum number of integers that Snuke can circle.

8
1
2
3
4
5
6
7
8
6

Snuke can circle 1,2,3,5,6,71,2,3,5,6,7.

6
2
4
8
16
32
64
3
10
1
10
100
1000000007
10000000000
1000000009
999999999
999
999
999
9