刚开始以为很简单,就用一般的方法提交,结果TLE。。。
百度了一下,原来要用筛选法做,因为数据太大了。。。
筛选法真的很好用哦!
#include<stdio.h>
int x[500000];
int main()
{
int temp,n,i,j,t;
for(i=0;i<500001;i++) x[i]=1; // 初识化
x[0]=0; x[1]=0;
for(i=2;i<=250000;i++){
for(j=i+i;j<=500000;j+=i){ // 筛选法
x[j]+=i;
}
}
while(scanf("%d",&t)!=EOF)
{
while(t--){
scanf("%d",&n);
printf("%d\n",x[n]);
}
}
system("pause");
return 0;
}