感觉常数不大 渐进2e9不到 但有5s
#include<bits/stdc++.h>
using namespace std;
#define int unsigned
const int N=5e3+5;
int n,a[N],ans,cnt[N],mem[N][N];
int div(int x,int y){
if(mem[x][y]!=-1){
return mem[x][y];
}
return mem[x][y]=x/y;
}
signed main(){
cin>>n,memset(mem,-1,sizeof(mem));
for(int i=1;i<=n;i++){
cin>>a[i],cnt[a[i]]++;
}
for(int i=1;i<N;i++){
cnt[i]+=cnt[i-1];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i]>a[j]){
int val=0;
for(int l=1;l<=min(a[i],a[j]);l++){
int r=min(div(a[i],div(a[i],l)),div(a[j],div(a[j],l)));
val+=(div(a[i],l))*(div(a[j],l))*(cnt[r]-cnt[l-1]),l=r;
}
ans-=(div(a[i],a[j]))*(div(a[i],a[j])),ans+=val*(div(a[i],a[j]));
}
}
}
cout<<ans;
}