아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

순열의 기댓값

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

요약
각 단계에서 배수 인덱스를 0으로 만드는 배열들의 합 Y의 기댓값을 구해 1000000007로 나눈 값으로 출력합니다.
난이도

보통10점 중 7점

유형
수학, 정수론, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

정수 배열 A=[A1,A2,⋯ ,AN]A = [A_1, A_2, \cdots, A_N]이 주어진다. AA의 모든 원소를 더하는 일은 지루해서, 당신은 한 단계 더 나아가기로 했다. 11부터 NN까지의 순열 PP가 무작위로 만들어진다. 11부터 NN까지의 각 순열은 같은 확률로 PP로 선택된다.

또한 배열 X0,X1,X2,…,XNX_0, X_1, X_2, \ldots, X_N과 정수 YY를 다음과 같이 정의한다.

  • X0=AX_0 = A
  • 1≤i≤N1 \le i \le N인 ii에 대해 XiX_i는 Xi−1X_{i-1}에서 인덱스가 ii의 배수인 모든 원소를 00으로 바꾼 배열이다.
  • Y=sum(X1)+sum(X2)+⋯+sum(XN)Y = \text{sum}(X_1) + \text{sum}(X_2) + \cdots + \text{sum}(X_N)이며, sum(Xi)\text{sum}(X_i)는 배열 XiX_i의 모든 정수의 합이다.

예를 들어 A=[4,1,2,3,4]A = [4, 1, 2, 3, 4]이고 P=[3,2,4,1,5]P = [3, 2, 4, 1, 5]이면:

  • X0=[4,1,2,3,4]X_0 = [4, 1, 2, 3, 4]
  • X1=[4,1,0,3,4]X_1 = [4, 1, 0, 3, 4] ← P1=3P_1 = 3이므로 X1X_1의 3번째 원소가 00으로 바뀐다.
  • X2=[4,0,0,0,4]X_2 = [4, 0, 0, 0, 4] ← P2=2P_2 = 2이므로 X2X_2의 2번째와 4번째 원소가 00으로 바뀐다.
  • X3=[4,0,0,0,4]X_3 = [4, 0, 0, 0, 4] ← P3=4P_3 = 4이므로 X3X_3의 4번째 원소가 00으로 바뀐다.
  • X4=[0,0,0,0,0]X_4 = [0, 0, 0, 0, 0] ← P4=1P_4 = 1이므로 X4X_4의 모든 원소가 00으로 바뀐다.
  • X5=[0,0,0,0,0]X_5 = [0, 0, 0, 0, 0] ← P5=5P_5 = 5이므로 X5X_5의 5번째 원소가 00으로 바뀐다.

따라서 이 경우 Y=12+8+8+0+0=28Y = 12 + 8 + 8 + 0 + 0 = 28이다.

PP가 무작위로 만들어지므로, 당신은 YY의 기댓값이 궁금해졌다. YY의 기댓값을 C/DC/D라 하자. 여기서 CC와 DD는 서로소인 음이 아닌 정수이다. (C×D−1) mod 1000000007(C \times D^{-1}) \bmod 1000000007을 출력하라. 즉, C≡DK(mod1000000007)C \equiv DK \pmod{1000000007}을 만족하는 유일한 정수 KK (0≤K<10000000070 \le K < 1000000007)를 출력해야 한다.

입력

첫 줄에 AA에 들어 있는 정수의 개수를 나타내는 정수 NN (1≤N≤1000001 \le N \le 100000)이 주어진다. 둘째 줄에 배열 AA를 나타내는 정수 AiA_i (0≤Ai≤1090 \le A_i \le 10^9) NN개가 주어진다.

출력

문제 설명에서 정한 형식으로 YY의 기댓값을 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    5
    4 1 2 3 4
    
    예상 출력
    500000020