【学习笔记】Min25筛

【定理简介】

  • M i n 25 Min25 Min25筛是一种能够求解积性函数 f ( x ) f(x) f(x)的前缀和 ∑ i = 1 N f ( i ) \sum_{i=1}^{N}f(i) i=1Nf(i)的筛法,其前提条件为 ∑ i = 1 N [ i   i s   a   p r i m e ] ∗ f ( i ) \sum_{i=1}^{N}[i\ is\ a\ prime]*f(i) i=1N[i is a prime]f(i)可以由 ∑ i = 1 x [ i   i s   a   p r i m e ] ∗ i k \sum_{i=1}^{x}[i\ is\ a\ prime]*i^k i=1x[i is a prime]ik简单表示,或能够直接快速计算,其中 k k k为一个较小的常数。
  • 其时间复杂度为 O ( N 3 4 L o g N ) O(\frac{N^{\frac{3}{4}}}{LogN}) O(LogNN43),空间复杂度为 O ( N ) O(\sqrt{N}) O(N )
  • 在求解过程中,我们还可以顺带求出对于每一个 x = ⌊ N i ⌋ x=\lfloor\frac{N}{i}\rfloor x=iN ∑ i = 1 x [ i   i s   a   p r i m e ] ∗ i k \sum_{i=1}^{x}[i\ is\ a\ prime]*i^k i=1x[i is a prime]ik的值。在一些题目中,上述功能可以直接帮助我们解决问题。

【算法流程】

  • 首先,我们先来解决对于每一个 x = ⌊ N i ⌋ x=\lfloor\frac{N}{i}\rfloor x=iN,求解 ∑ i = 1 x [ i   i s   a   p r i m e ] ∗ i k \sum_{i=1}^{x}[i\ is\ a\ prime]*i^k i=1x[i is a prime]ik的值。

  • 我们先通过线性筛得到 N \sqrt{N} N 以内所有的质数 p r i m e i prime_i primei以及它们的前缀 k k k次方和 s u m i = ∑ j = 1 i p r i m e j k sum_{i}=\sum_{j=1}^{i}prime_j^k sumi=j=1iprimejk

  • 定义 g ( N , i ) = ∑ j = 1 N [ j   i s   a   p r i m e   o r   M i n j > p r i m e i ] ∗ j k g(N,i)=\sum_{j=1}^{N}[j\ is\ a\ prime\ or\ Min_j>prime_i]*j^k g(N,i)=j=1N[j is a prime or Minj>primei]jk,其中 M i n i Min_i Mini表示 i i i最小的质因数。

  • 直观地来说, g ( N , i ) g(N,i) g(N,i)表示的就是 N N N以内的在埃拉特斯特尼筛算法进行第 i i i轮后尚未被筛去的数的 k k k次方和。

  • 一个合数 X X X一定存在一个 X \sqrt{X} X 以内的质因数,因此

  • 11
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
学习MATLAB时,编写学习笔记是一种很好的方法,可以帮助您记录重要的概念、语法和技巧,以及解决问题的步骤。以下是一些关于编写MATLAB学习笔记的建议: 1. 组织结构:使用清晰的标题和分节来组织您的学习笔记。将不同的主题分成单独的部分,并使用子标题来进一步细分内容。 2. 内容概要:在每个部分或子标题下,写下该主题的概要。这样可以帮助您回顾和理解该主题的关键点。 3. 示例代码和输出:对于每个主题,包括一些示例代码和相应的输出结果。这有助于您理解和演示具体的MATLAB语法和功能。 4. 问题与解答:如果您在学习过程中遇到了一些困惑或问题,将其记录下来,并在笔记中提出并解答这些问题。这样可以帮助您深入思考并加深对该主题的理解。 5. 笔记补充:除了基本概念和语法外,您还可以添加一些额外的笔记,如最佳实践、编程技巧、常见错误等。这些额外的笔记可以提供更多的实用信息和提示。 6. 参考资料:在您的学习笔记中,包括引用的参考资料,如教程、文档、书籍或网站链接。这样,您可以随时回顾并深入研究相关的主题。 7. 总结和复习:在学习笔记的结尾,添加一个总结部分,回顾和总结您学到的重点和关键概念。此外,定期复习您的学习笔记也是加深理解和记忆的好方法。 以上是关于编写MATLAB学习笔记的一些建议。希望这对您有所帮助,并祝您在MATLAB学习过程中取得成功!如果有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值