hdu 1215 七夕节——数论

大意:题目要求对于每一个n,输出他的所有因子之和

这个题乍一看和poj1845很像,的确可以用poj1845的方法来做,但是这个题的数据规模比poj小很多,我在网上搜了一下,居然这个可以用筛法做,像筛素数那样,把所有i的倍数都加上i……学习啦~~

2011-08-25 10:39:27 Accepted 1215 93MS 2148K 319 B G++ Tiramitu
#include<cstdio>
#define MAXN 500000
int array[MAXN+10];

int main(void)
{
int i,j;
array[
0]=0;
array[
1]=0;
for(i=1;i<=MAXN/2;i++)
for(j=i+i;j<=MAXN;j+=i)
{
array[j]
+=i;
}
int T;
scanf(
"%d",&T);
while(T--)
{
int n;
scanf(
"%d",&n);
printf(
"%d\n",array[n]);
}
return 0;
}

  

你可能感兴趣的:(HDU)