线性预处理整除分块

有时候要求前 n n n 个:

暴力整除分块是 O ( n n ) O(n\sqrt n) O(nn ) 的,但可以线性预处理

首先我们让 i i i 取遍 0 到正无穷,考虑差分。

思考 n − 1 n-1 n−1 变成 n n n,哪些 i i i 会发生变化。只有 n n n 的因数,所以差分出来其实就是 n n n 的因数个数。这个可以线性筛 O ( n ) O(n) O(n) 预处理。

然后再做个前缀和就还原成原数组了。

相关推荐
向往着的青绿色19 小时前
完全平方数【Letcode279题解】
开发语言·c++·数学·算法·面试·性能优化·动态规划
Sakuraba Ema2 天前
从零理解 MoE(Mixture of Experts)混合专家:原理、数学、稀疏性、专家数量影响与手写 PyTorch 实现
人工智能·pytorch·python·深度学习·数学·llm·latex
Sunsets_Red3 天前
乘法逆元的 exgcd 求法
c++·学习·数学·算法·c#·密码学·信息学竞赛
闻缺陷则喜何志丹3 天前
【高等数学】四,不定积分
数学·不定积分·高等数学·分部积分法·第一类积分换元法·第二类积分换元法·有理函数的积分
shuiwangrenjia4 天前
MT2001 幸运的3
数学
Sunsets_Red6 天前
模意义下及同余的公式整理
c语言·c++·数学·算法·c#·数论·信息学竞赛
Tisfy7 天前
LeetCode 1622.奇妙序列:懒更新
数学·算法·leetcode·题解·设计
汉克老师8 天前
GESPC++考试五级语法知识(二、埃氏筛与线性筛)课后习题
算法·线性筛·素数·gesp5级·gesp五级·埃氏筛·筛法
闻缺陷则喜何志丹8 天前
【巴什博弈 线性筛】P8901 [USACO22DEC] Circular Barn S|普及+
c++·数学·洛谷·巴什博弈·线型筛
Tisfy8 天前
LeetCode 1415.长度为 n 的开心字符串中字典序第 k 小的字符串:DFS构造 / 数学O(n)
数学·算法·leetcode·深度优先·字符串·dfs·模拟