HDU 1215 七夕节 筛选法

被刻印的时光 ゝ 提交于 2020-03-15 05:46:11
这题我开始暴力,结果TLE,后来想到这种题应该都有精简的方法,就去网上搜,没想到新学了一招,筛选法,估计最小公倍数也能这样做了,哈哈
#include<stdio.h>
#include<string.h>
long long num[500005];
void shaixuan( )
{
     for( int i = 1; i < 500005; ++i )
          num[i] = 1;
     for( int i = 2; i < 500005; ++i )
          for( int j = 2; j * i < 500005; ++j )
               num[i*j] += i;
 }
int main( )
{
    shaixuan( );
    int t,n;
    scanf( "%d",&t );
    while( t-- )
    {
           scanf( "%d",&n );
           printf( "%I64d\n",num[n] );
           }
    return 0;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!