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 C++ (GCC 9.2.1) (judge verdict: Accepted)

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e6+1;
ll mod=998244353;
int modpow(ll x,ll p){
    if(p==0) return 1;
    ll ans=modpow(x,p/2);
    ans=ans*ans%mod;
    if(p%2) ans=ans*x%mod;
    return ans;
}
int main(){
    ios::sync_with_stdio(0);cin.tie(0);
    int n;
    cin>>n;
    ll inp,mu[N]={},cnt[N]={},cnt2[N]={},out[N]={},in[N]={};
    for(ll i=0;i<n;i++) cin>>inp,in[inp]++;
    for(ll &i:mu) i=1;
    for(int i=1;i<N;i++){
        for(int j=i;j<N;j+=i){
            cnt[i]+=j*in[j];
            cnt2[i]+=1ll*j*j%mod*in[j];
            cnt[i]%=mod;
            cnt2[i]%=mod;
        }
        if(out[i] or i==1) continue;
        for(int j=i;j<N;j+=i){
            mu[j]*=-1;
            out[j]=1;
            if(j%(i*i)==0) mu[j]=0;
        }
    }
    mu[1]=1;
    ll ans=0;
    for(int i=1;i<N;i++){
        ll tmp=0;
        for(int j=i;j<N;j+=i){
            tmp+=(cnt[j]*cnt[j]%mod-cnt2[j]+mod)*(mu[j/i]+mod);
            tmp%=mod;
        }
        ans+=tmp*(modpow(i*2,mod-2));
        ans%=mod;
    }
    cout<<ans;
}