分块除法
下面是分块除法的处理:

#include <bits/stdc++.h> using namespace std; #define ri register int #define M 10005 struct daisn{ int l,r,sum; }p[M]; int val[M]; int main(){ int l=1; int tmp=0; while(l<=n) { int r=(n/(n/l)); p[++tmp].l=l;p[tmp].r=r;p[tmp].sum=(r-l+1)*(n/l); l=r+1; } }