만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

기약분수

시간 제한3초메모리 제한2048 MB

요약
서로 다른 인덱스 네 개 (i, j, k, l)를 골라 (a_i * a_j) / (a_k * a_l)이 기약분수가 되는 경우의 수를 셉니다. 배열 길이는 최대 2000이고 원소는 최대 10^12입니다.
난이도

보통10점 중 6점

유형
정수론, 비트 연산, 조합론
정답자
아직 제출이 없습니다

문제

길이가 nn인 양의 정수 배열 aa가 주어진다. 다음 분수가 기약분수가 되는, 서로 다른 인덱스 (i,j,k,l)(i, j, k, l)의 네 쌍의 개수를 구하라.

ai⋅ajak⋅al\frac{a_i \cdot a_j}{a_k \cdot a_l}

입력

첫째 줄에 배열의 길이 nn (4≤n≤20004 \leq n \leq 2000)이 주어진다. 둘째 줄에는 배열의 원소 aia_i (1≤ai≤10121 \leq a_i \leq 10^{12}) nn개가 주어진다.

출력

조건을 만족하는 인덱스 네 쌍의 개수를 정수 하나로 출력한다.

예제2

  1. 예제 1

    입력
    4
    1 1 1 1
    
    예상 출력
    24
    
  2. 예제 2

    입력
    6
    10 11 2 4 5 7
    
    예상 출력
    96