Problem:
Score : 700 points

Problem Statement

We have an integer sequence of length N: A_0,A_1,\cdots,A_{N-1}.

Find the following sum (\mathrm{lcm}(a, b) denotes the least common multiple of a and b):

\sum_{i=0}^{N-2} \sum_{j=i+1}^{N-1} \mathrm{lcm}(A_i,A_j)

Since the answer may be enormous, compute it modulo 998244353.

Constraints

1 \leq N \leq 200000

1 \leq A_i \leq 1000000

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N
A_0\ A_1\ \cdots\ A_{N-1}

Output

Print the sum modulo 998244353.

Sample Input 1

3
2 4 6

Sample Output 1

22

\mathrm{lcm}(2,4)+\mathrm{lcm}(2,6)+\mathrm{lcm}(4,6)=4+6+12=22.

Sample Input 2

8
1 2 3 4 6 8 12 12

Sample Output 2

313

Sample Input 3

10
356822 296174 484500 710640 518322 888250 259161 609120 592348 713644

Sample Output 3

353891724

Solution in Fortran (gfortran v4.8.4) (judge verdict: Time Limit Exceeded)

program lcms
  implicit none
  integer(8), parameter :: md = 998244353_8
  integer :: n, i, j
  integer(8) :: a(200000) = 0_8, s = 0_8, ans = 0_8, tmp
  read(*,*) n
  read(*,*) a(1:n)
  do i = 1, n
    do j = 1, n
      ans = mod(ans+lcm(a(i),a(j)),md)
    end do
  end do
  do i = 1, n
    ans = modulo(ans-a(i),md)
  end do
  write(*,'(i0)') mod(ans*inv(2_8),md)
contains
  integer(8) function lcm(a,b)
    integer(8), intent(in) :: a, b
    lcm = abs(a)/gcd(a,b)*abs(b)
  end
  integer(8) function gcd(a,b)
    integer(8), intent(in) :: a, b
    integer(8) :: x, y
    x = max(abs(a),abs(b))
    y = min(abs(a),abs(b))
    do while (y > 0_8)
      gcd = y
      y = mod(x,y)
      x = gcd
    end do
  end
  integer(8) function inv(n)
    integer(8), intent(in) :: n
    integer(8) :: a, b, c, t, q
    a = modulo(n,md)
    b = md
    c = 0_8
    inv = 1_8
    do while (b /= 0_8)
      q = a/b
      t = b
      b = mod(a,b)
      a = t
      t = inv
      inv = c
      c = t-q*c
    end do
    inv = modulo(inv,md)
  end
end program lcms