#include<stdio.h>
int main()
{
__int64 n,i,sum,l,r;
while(scanf("%I64d",&n)!=EOF)
{
sum=0;
for(i=1;i*i<=n;i++)
{
sum+=n/i*i;
if(i!=n/i)
{
l=n/(i+1)+1;
r=n/i;
sum+=i*(l+r)*(r-l+1)/2;
}
}
printf("%I64d\n",sum);
}
return 0; }
借鉴别人的代码
http://218.245.3.161/2011/03/08/5687 虽然还有一些不是很理解