여섯 인덱스의 서로소 곱

시간 제한2초메모리 제한512 MB

요약
N개의 정수가 주어질 때, 359999(=599*601)로 나눈 세 쌍의 곱의 최대공약수가 1이 되는 순서쌍 6개의 개수를 1e9+7로 나눈 나머지로 구하는 문제입니다.
난이도

어려움10점 중 9점

유형
정수론, 조합론, 수학, 해시맵
정답자
아직 제출이 없습니다

문제

NN개의 정수 X1,X2,…,XNX_1, X_2, \dots, X_N가 주어진다. 각 순서쌍 (i,j)(i, j)에 대해 Yi,j=Xi×Xj mod 359999Y_{i,j} = X_i \times X_j \bmod 359999로 정의한다.

다음 조건을 모두 만족하는 순서 있는 6-튜플 (a,b,c,d,e,f)(a, b, c, d, e, f)의 개수를 구하자.

  • 1≤a,b,c,d,e,f≤N1 \le a, b, c, d, e, f \le N
  • gcd⁡(Ya,b,Yc,d,Ye,f)=1\gcd(Y_{a,b}, Y_{c,d}, Y_{e,f}) = 1

정의에 따라 gcd⁡(0,0)=0\gcd(0, 0) = 0으로 둔다.

입력

첫째 줄에 정수 NN이 주어진다.

둘째 줄에 X1,X2,…,XNX_1, X_2, \dots, X_N이 공백으로 구분되어 주어진다.

출력

조건을 만족하는 순서 있는 6-튜플의 개수를 109+710^9 + 7로 나눈 나머지를 출력한다.

제한

  • 1≤N≤1061 \le N \le 10^6
  • 1≤Xj≤1061 \le X_j \le 10^6

예제1

  1. 예제 1

    입력
    3
    300 3000 30000
    
    예상 출력
    234