Note -「因数的欧拉函数求和」
归档。
试证明:\(\sum \limits _{d | x} \varphi (d) = x\)
Lemma 1.
试证明:\(\sum \limits _{d | p^k} \varphi (d) = p ^k\),其中 \(p\) 为质数。
证明:显然,和 \(n\) 不互质的数一定含有 \(p\) 因子,而在 \([1, n]\) 中总共有 \(\lfloor \frac {n} {p} \rfloor = p ^{k - 1}\) 个含 \(p\) 因子的数,故可知 \(\varphi (p^k) = (p^k - p^{k - 1}), k > 0\)。特殊的,\(\varphi (1) = 1\)。
然后转化原式可得 \(\sum \limits _{i = 0} ^{k} \varphi (p ^i) = 1 + (p^1 - p^0) + (p^2 - p^1) + \dots + (p^k - p^{k - 1}) = p ^k\)。得证。
Lemma 2.
试证明:记 \(f (x) = \sum \limits _{d | x} \varphi (d)\),若 \(\gcd (m, n) = 1\),则 \(f(m n) = f(m)f(n)\)。即 \(f(n)\) 为积性函数。
证明:记 \(\mathbb{M'}\) 为 \(m\) 的因数集合,\(\mathbb{N'}\) 为 \(n\) 的因数集合。记两个集合大小分别为 \(a, b\)。
因为 \(m, n\) 互质,故 \(\mathbb{M'}\) 与 \(\mathbb{N'}\) 中没有相同元素,则 \(mn\) 的因数集合为 \(\{x y | x \in \mathbb{M'}, y \in \mathbb{N'}\}\)。
故:
f(mn) &= \varphi (x_1y_1) + \varphi (x_1y_2) + \dots + \varphi (x_{a}y_{1}) + \dots + \varphi (x_{a}y_{b})
\\
&= \sum _{i = 1} ^{a} \varphi (x_i) \times \sum _{j = 1} ^{b} \varphi (y_j)
\\
&= f(m)f(n)
\end {align}
\]
得证。
Prove.
将 \(n\) 质因数分解为 \(p_1 ^{k_1} p_2 ^{k_2} \dots p_m ^{k_m}\)。显然可由引理 1 知 \(f(p_i^{k_i}) = p_i ^{k_i}\)。
又因为 \(\gcd (p_i ^{k_i}, p_j ^{k_j}) = 1, i \neq j\),由引理 2 可得 \(f(p_i^{k_i} p_j^{k_j}) = f(p_i ^{k_i}) f(p_j ^{k_j}) = p_i^{k_i} p_j^{k_j}\)。
推广之,即得 \(f(n) = n\)。
Note -「因数的欧拉函数求和」的更多相关文章
- poj3090欧拉函数求和
E - (例题)欧拉函数求和 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:65536KB ...
- 【BZOJ4805】欧拉函数求和(杜教筛)
[BZOJ4805]欧拉函数求和(杜教筛) 题面 BZOJ 题解 好久没写过了 正好看见了顺手切一下 令\[S(n)=\sum_{i=1}^n\varphi(i)\] 设存在的某个积性函数\(g(x) ...
- BZOJ4805: 欧拉函数求和(杜教筛)
4805: 欧拉函数求和 Time Limit: 15 Sec Memory Limit: 256 MBSubmit: 614 Solved: 342[Submit][Status][Discus ...
- HDU2824-The Euler function-筛选法求欧拉函数+求和
欧拉函数: φ(n)=n*(1-1/p1)(1-1/p2)....(1-1/pk),其中p1.p2-pk为n的所有素因子.比如:φ(12)=12*(1-1/2)(1-1/3)=4.可以用类似求素数的筛 ...
- [BZOJ]4805: 欧拉函数求和
解题思路类似莫比乌斯函数之和 题目大意:求[1,n]内的欧拉函数$\varphi$之和.($n<=2*10^{9}$) 思路:令$ M(n)=\sum_{i=1}^{n}\varphi (i) ...
- 【bzoj3944/bzoj4805】Sum/欧拉函数求和 杜教筛
bzoj3944 题目描述 输入 一共T+1行 第1行为数据组数T(T<=10) 第2~T+1行每行一个非负整数N,代表一组询问 输出 一共T行,每行两个用空格分隔的数ans1,ans2 样例输 ...
- BZOJ 4805: 欧拉函数求和 杜教筛
https://www.lydsy.com/JudgeOnline/problem.php?id=4805 给出一个数字N,求sigma(phi(i)),1<=i<=N https://b ...
- 【BZOJ3944/4805】Sum/欧拉函数求和 杜教筛
[BZOJ3944]Sum Description Input 一共T+1行 第1行为数据组数T(T<=10) 第2~T+1行每行一个非负整数N,代表一组询问 Output 一共T行,每行两个用 ...
- Bzoj4805: 欧拉函数求和
好久没写杜教筛了 练练手AC量刷起 # include <bits/stdc++.h> # define RG register # define IL inline # define F ...
随机推荐
- BottomNavigationView点击刷新问题
BottomNavigationView点击刷新问题 问题: 项目中使用了BottomNavigationView作为底部导航栏. 点击item切换的时候发现会有闪烁现象出现. 原因: BottomN ...
- 太极限了,JDK的这个BUG都能被我踩到
hello,大家好呀,我是小楼. 之前遇到个文件监听变更的问题,刚好这周末有空研究了一番,整理出来分享给大家. 从一次故障说起 我们还是从故障说起,这样更加贴近实际,也能让大家更快速理解背景. 有一个 ...
- vue - Vue路由
至此基本上vue2.0的内容全部结束,后面还有点elementUI和vue3.0的内容过几天再来更新. 这几天要回学校去参加毕业答辩,断更几天 一.相关理解 是vue的一个插件库,专门用来实现spa( ...
- Linux磁盘和文件系统知识总结
硬盘操作 为什么要给硬盘分区? 如果你需要在一块硬盘上用到多个文件系统,那么你就需要对硬盘进行分区,以便用不同的分区支持不同的文件系统.(但一个硬盘只能有一个分区表!)反过来说,如果你整块硬盘都用同样 ...
- 多线程07:async、future、packaged_task、promise
async.future.packaged_task.promise 本节内容需要包含头文件:#include <future> 一.std::async. std::future 创建后 ...
- 精彩分享 | 欢乐游戏 Istio 云原生服务网格三年实践思考
作者 吴连火,腾讯游戏专家开发工程师,负责欢乐游戏大规模分布式服务器架构.有十余年微服务架构经验,擅长分布式系统领域,有丰富的高性能高可用实践经验,目前正带领团队完成云原生技术栈的全面转型. 导语 欢 ...
- 其实 Gradle Transform 就是个纸老虎 —— Gradle 系列(4)
前言 目前,使用 AGP Transform API 进行字节码插桩已经非常普遍了,例如 Booster.神策等框架中都有 Transform 的影子.Transform 听起来很高大上,其本质就是一 ...
- Java 统计新客户
上周做了一个订单数据统计的任务,统计的是订单的新客户数量,本文做一个解题过程的记录和整理. 新客户的定义 新客户指的是选取时间段有订单,时间段之前没有订单. 比如下面的订单数据: 时间段 2月1日之前 ...
- 821. Shortest Distance to a Character - LeetCode
Question 821. Shortest Distance to a Character Solution 思路:遍历字符串S,遇到与字符C相等就分别向左/右计算其他字符与该字符的距离,如果其他字 ...
- cpulimit-限制CPU速率
CPULimit是一个简单的程序,它可以限制指定进程的CPU百分比. 1.安装依赖 root@localhost:~# apt-get -y install git 2.从GitHUB中克隆源码到本地 ...