【埃氏筛】批量求数的因数和,求区间所有数的因数和

最近这个用的比较多,之前都没写过。
mk一下。

typedef long long ll;
ll tb[maxn];
for (int i = 1; i < maxn; i++) {
    
    
   for (int j = i; j < maxn; j += i) {
    
     //每次+i保证i是j的因数
       tb[j] += i;  //记录j的所有因数和
   }
}
for (int i = 1; i < maxn; i++) tb[i] += tb[i-1]; //记录1~i的因数和的前缀和

即可实现nlogn的打表,o(1)的查询。

女少口阿

猜你喜欢

转载自blog.csdn.net/weixin_43269437/article/details/106736368