积性函数前缀和求和的方法

本文介绍了积性函数的基本概念,包括完全积性函数、Dirichlet卷积、Mobius反演和线性筛等,并通过解题展示了如何在数论问题中运用这些方法,如莫比乌斯函数、欧拉函数、最小公倍数和最大公约数的前缀和计算。此外,还讨论了在大数范围下优化算法的时间复杂度,如使用杜教筛解决大数范围内的求和问题。
摘要由CSDN通过智能技术生成

  将近一周的时间内,我专门学习了数论中有关积性函数求前缀和的一些方法,在被虐心的数论折磨得痛不欲生之后(然而我明明已经逃离了数学系为什么还要被数学虐啊摔!!),我终于基本掌握了这一方法,所以在这里记录一下基本的思想并放上一些题解,以便日后回顾。

一、基本知识

1.积性函数

  积性函数是指这样一类数论函数,对于 a,bN    gcd(a,b)=1  f(ab)=f(a)f(b)  .常见的积性函数有:

σ k (n)nk 

φ(n)nn 

μ(n)=⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ 1           (n=1)(1) k   (nk)0          ()  

2.完全积性函数

  若数论函数 f  对于 a,bN    f(ab)=f(a)f(b)  ,这样的 f  称为完全积性函数。常见的完全积性函数有:

Id k (n)=n k  

ϵ(n)={ 1  (n=1)0  (n>1)  

3.Dirichlet卷积

   Dirichlet  卷积的定义是,对于两个数论函数 f,g  fg(n)= d|n f(d)g(nd )  Dirichlet  卷积有如下的一些性质:卷积运算满足交换律、结合律、分配律,单位函数 ϵ  Dirichlet  卷积运算的单位元,两个积性函数的 Dirichlet  卷积仍然是积性函数。

4.两个重要的公式

    d|n φ(n)=n 
    d|n μ(n)=[n=1]  ([sth.]10) 
  这两个公式在之后的推导中有极大的作用。
 

5.Mobius反演

  定理:若两个数论函数满足 f(n)= d|n g(d)  ,那么 g(n)= d|n μ(d)f(nd )  。在接下来的讨论中将会看到,这一定理对之后的许多讨论有重要的作用。

6.线性筛

  线性筛是指一种在线性时间复杂度内求出 n  以内所有正整数的最小质因子的算法。该算法描述如下:从2开始,若一个数没有被筛过,则它为质数,最小质因子为其本身,之后对所有的质数 jmin[i]  ,有 min[ij]=j  。这样,由于每个合数仅被其最小质因子筛去一次,所以算法的复杂度是线性的。
  
  接下来,就是具体的求积性函数前缀和的算法了,但是我不打算把它详细的写出来,而是在题解中体现这样的思想。
  

二、题解

  首先,我们在线性筛的基础上改进一下就能在线性时间内求出积性函数的值。我们增加一个数组记录 n  的最小质因子的次数,在做线性筛的同时,利用积性函数的性质,就可以同时计算出它的值。设 f  是一个积性函数,首先根据定义计算 f(1)  ,然后从2开始,先对 i  进行线性筛的操作,然后分两种情况:设 i  的最小质因子为 p  ,次数为 k  ,若 ip k  >1  ,根据积性函数的性质有 f(i)=f(p k )f(ip k  )  ,否则

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值