数论学习笔记
数论分块
求
,并且 的前缀和可以快速计算。
发现
问题是已知
推一推柿子,
做完了。
原根
本节的所有定义都是在模
如果
有一些性质:
-
。 -
。 -
若
,则 。
对于某个原根
于是可以得到,
有结论:形如
如何求最小原根?
从小到大枚举,最小原根不会超过
暴力
杜教筛
求
, , , 等积性函数的前缀和。
假设我们要求函数
也就是说,如果我们能快速求出
如果直接做是
杜教筛的关键在于那个柿子以及
离散对数
给定一个质数
,以及一个整数 ,一个整数 ,现在要求你计算一个最小的非负整数 ,满足 。
由于
首先有
取
做完了,时间复杂度
求
, 的 的个数,要求根号复杂度。
首先由于
发现
考虑一个
然后先分类讨论一下:
-
,此时 ,设 ,那么显然有 ,所以 的最小值就是 ,那么 ,解的个数为 。 -
,此时 ,显然如果 不是 倍数无解,那么设 ,所以得到 ,也就是 。然后就可以等式两边同除
(吗)?如果上述成立,那么
的解的个数等价于 的解的个数,但是我们发现出问题了,原方程的解的个数应该是放缩后方程的解的个数的 倍,因为原来 的范围是 ,但是后面变成了 ,范围缩小到原来的 ,解数自然也缩小到原方程的 。问题转化为求方程
的解的个数,显然 ,设 的原根为 ,那么有 , 。 和 可以 直接来。然后就变成了
,然后有 。此时只要求出这个同余方程的解数即可,不难发现该方程的解与原方程的解一一对应。
而这个同余方程若有解,解数必然为
。
然后这题就做完了,复杂度瓶颈在于
本文作者:Tx_Lcy
本文链接:https://www.cnblogs.com/tx-lcy/p/17903482.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步