#include #include using namespace std; using namespace atcoder; #define ll long long #define rep(i,a,b) for(int i=(a);i<(b);i++) #define repl(i,a,b) for(ll i=(a);i<(b);i++) #define all(a) (a).begin(),(a).end() #define rall(a) (a).rbegin(),(a).rend() template bool chmin(T &a,T b){if(a>b){a=b;return true;} return false;} template bool chmax(T &a,T b){if(a> n; vector a(n); using mint=modint1000000007; int m=2e5; vector sum(3*m); vector num(3*m); rep(i,0,n) cin >> a[i], sum[a[i]]+=a[i], num[a[i]]++; rep(i,0,3*m-1){ sum[i+1]+=sum[i]; num[i+1]+=num[i]; } sort(all(a)); mint ans=0; rep(i,0,n-1){ ans+=(mint)a[i]*(n-i-1); for(int l=a[i];l<=2*m;l+=a[i]){ ans-=(sum[l+a[i]-1]-sum[l])-(num[l+a[i]-1]-num[l])*l; } } cout << ans.val() << "\n"; return; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int T=1; // cin >> T; while(T--) solve(); }