积性函数

数论函数指的是定义在正整数集上的实或复函数.

积性函数指的是当 \((a,b)=1\) 时, 满足 \(f(a*b)=f(a)*f(b)\) 的数论函数.

完全积性函数指的是在任何情况下, 满足 \(f(a*b)=f(a)*f(b)\) 的数论函数.

常见的积性函数

copy&modified from 积性函数 - 维基百科,自由的百科全书

φ(n) -欧拉函数

μ(n) -莫比乌斯函数,关于非平方数的质因子数目

gcd(n,k) -最大公因子,当k一定

d(n) -n的正因子数目

σ(n) -n的所有正因子之和

\(σ_k(n)\) - 因子函数,n的所有正因子的k次幂之和,当中k可为任何复数。

- k=0: \(d(n)\)

- k=1: \(\sigma (n)\)

I(n) -不变的函数,定义为 I(n) = 1 (完全积性)

Id(n) -单位函数,定义为 Id(n) = n(完全积性)

\(Id_k(n)\) -幂函数,对于任何复数、实数k,定义为Idk(n) = n^k (完全积性)

- k=0: \(I(n)\)

- k=1: \(Id(n)\)

ε(n) -定义为:若n = 1,ε(n)=1;若 n > 1,ε(n)=0。别称为“对于狄利克雷卷积的乘法单位”(完全积性)

λ(n) -刘维尔函数,关于能整除n的质因子的数目

\((\frac np)\) -勒让德符号,p是固定质数(完全积性), 关于二次剩余

线性筛

对于一个积性函数, 我们往往可以利用线性筛 \(O(n)\) 求出1-n的函数值.

线性筛只需求出一下几个值:

  1. \(f(1)\)
  2. \(f(p)\) when \(p\) is prime
  3. \(f(p*i)\) when \(p\) is min prime factor && \(p \nmid i\), then \(f(p*i) = f(p)*f(i)\)
  4. \(f(p*i)\) when \(p\) is min prime factor && \(p \mid i\)

前三个的求值是显然的;

对于第四个, 大多数情况下, 这些函数都可以利用唯一分解得到表达式, 如\(\phi (n)\),\(\mu (n)\)等. 此时可以较容易求出第四个的递推式.

筛质数, \(\phi (n)\),\(\mu (n)\)的代码:

const int nsz=2e6+50;
ll bnd=2e6; int nopr[nsz],pr[nsz],pp=0;
ll mu[nsz],phi[nsz];
void init(){
nopr[1]=mu[1]=phi[1]=1;//a
rep(i,2,bnd){
if(nopr[i]==0)pr[++pp]=i,mu[i]=-1,phi[i]=i-1;//b
rep(j,1,pp){
if((ll)i*pr[j]>bnd)break;
nopr[i*pr[j]]=1;
if(i%pr[j])mu[i*pr[j]]=-mu[i],phi[i*pr[j]]=phi[i]*phi[pr[j]]; //c
else{mu[i*pr[j]]=0,phi[i*pr[j]]=phi[i]*pr[j];break;} //d
}
}
}

[模板] 积性函数 && 线性筛的更多相关文章

  1. bzoj2693--莫比乌斯反演+积性函数线性筛

    推导: 设d=gcd(i,j) 利用莫比乌斯函数的性质 令sum(x,y)=(x*(x+1)/2)*(y*(y+1)/2) 令T=d*t 设f(T)= T可以分块.又由于μ是积性函数,积性函数的约束和 ...

  2. 积性函数&线性筛&欧拉函数&莫比乌斯函数&因数个数&约数个数和

    只会搬运YL巨巨的博客 积性函数 定义 积性函数:对于任意互质的整数a和b有性质f(ab)=f(a)f(b)的数论函数. 完全积性函数:对于任意整数a和b有性质f(ab)=f(a)f(b)的数论函数 ...

  3. BZOJ 2694: Lcm 莫比乌斯反演 + 积性函数 + 线性筛 + 卡常

    求 $\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)\mu(gcd(i,j))^2$   $\Rightarrow \sum_{d=1}^{n}\mu(d)^2\sum_{i ...

  4. 莫比乌斯反演/线性筛/积性函数/杜教筛/min25筛 学习笔记

    最近重新系统地学了下这几个知识点,以前没发现他们的联系,这次总结一下. 莫比乌斯反演入门:https://blog.csdn.net/litble/article/details/72804050 线 ...

  5. Divisor counting [线性筛积性函数]

    Divisor counting 题目大意:定义f(n)表示整数n的约数个数.给出正整数n,求f(1)+f(2)+...+f(n)的值. 注释:1<=n<=1000,000 想法:我们再次 ...

  6. ACM-ICPC 2018 南京赛区网络预赛Sum,线性筛处理积性函数

    SUM 题意:f(n)是n可以拆成多少组n=a*b,a和b都是不包含平方因子的方案数目,对于a!=b,n=a*b和n=b*a算两种方案,求∑i=1nf(i) 首先我们可以知道,n=1时f(1)=1, ...

  7. 积性函数,线性筛入门 HDU - 2879

    HDU - 2879HeHe 题意:He[N]为[0,N−1]范围内有多少个数满足式子x2≡x (mod N),求HeHe[N]=He[1]×……×He[N] 我是通过打表发现的he[x]=2k,k为 ...

  8. 牛客小白月赛12C (线性筛积性函数)

    链接:https://ac.nowcoder.com/acm/contest/392/C来源:牛客网 题目描述 华华刚刚帮月月完成了作业.为了展示自己的学习水平之高超,华华还给月月出了一道类似的题: ...

  9. P6222 「简单题」加强版 莫比乌斯反演 线性筛积性函数

    LINK:简单题 以前写过弱化版的 不过那个实现过于垃圾 少预处理了一个东西. 这里写一个实现比较精细了. 最后可推出式子:\(\sum_{T=1}^nsum(\frac{n}{T})\sum_{x| ...

随机推荐

  1. Azure WebJob-Custom Schedule for Azure Web Job Timer Triggers

    如果想实现Azure Schedule WebJob,有两种方法: 1. 配置CRON Expression,网上有在线CRON配置工具,根据业务需要配置即可 注意:Azure的CRON Expres ...

  2. 关于ArcMap中打开ArcToolbox导致闪退的解决办法

    最近好久不用ArcGis的小编要用到ArcMap去发送一个GP服务,发现按照套路打开ArcMap点击ArcToolbox时,发生了ArcMap的闪退现象,几经周折终于解决了问题. 希望也遇到这类问题的 ...

  3. Arcgis for js开发之直线、圆、箭头、多边形、集结地等绘制方法

    p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...

  4. Kubernetes Dashboard - 每天5分钟玩转 Docker 容器技术(173)

    前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的.为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 ...

  5. SQL根据细粒度为天的查询

    当我们集成了一些前端框架,在某些展示页面上往往具有某些查询条件.而这其中日期查询的处理又较为麻烦,此处,我罗列了一种当前台上传了一种默认的date格式的日期查询数据至后台未经Controller或Se ...

  6. AngularJS学习之旅—AngularJS SQL(十二)

    一.使用 PHP 从 MySQL 中获取数据 <div ng-app="myApp" ng-controller="customersCtrl"> ...

  7. python粗谈面向对象(二)

    浅谈super() super并不是一个函数,是一个类名,形如super(B, self)事实上调用了super类的初始化函数,产生了一个super对象:Python的多继承类是通过mro的方式来保证 ...

  8. Docker: Harbor一些小知识

    镜像文件上传到私有仓库harbor后,镜像的物理存储位置在哪里? 这些信息记录在docker-compose.yml里,通过观察发现 镜像存储在了宿主机的 volumes: - /data/regis ...

  9. HTML---引入css,js | 常用标签示例

    一.前端基础包括哪些?如何理解 二.css,js引入_及head中其他标签 三.特殊符号 四.常见的标签 4.1,form表单 4.2,input系列(单选框.复选框.input传文件.重置) 4.3 ...

  10. .NET CORE学习笔记系列(2)——依赖注入【1】控制反转IOC

    原文:https://www.cnblogs.com/artech/p/net-core-di-01.html 一.流程控制的反转 IoC的全名Inverse of Control,翻译成中文就是“控 ...