首页 > 代码库 > 简易数论练习
简易数论练习
A:略
B: 数论筛 + 最大独立集(二分图)
C:注意用 prime 数组来筛取因子 prime[i]*(LL)prime[i]<=tmp
D:考虑 sigma(n) = \prod(1+p+p^2+....) 等于奇数的情况
对于质因子2,出现任意次皆可,对于其他因子,必然出现偶数次。
这样不考虑质因子2,除去2后的 number 开根后必然与一个1~10^6 的数字相对应,这样枚举p2^t2....pm^tm进行搜索
然后算 2^t * now <= n 解的个数即可。
E:对于后x位,取余快速幂,对于前x位取log10后得到的小数部分,即为所求。
F:略
G:分块
H:考虑[a,b] = n 相当于对于 n中的每一个质因数的指数a,b取max得到的都是n的相应指数。
问题转化为假定集合A:为当前质因数集合 a取到max ans = \sum prod_{x ∈ A}{ ti } prod_{x ? A}{ti + 1}
这样考虑线性递推即可得到ans = \prod ti (ti+1)
I:调和级数近似式:1+1/2+1/3+1/4+...1/n = ln(n+1) + r (r =0.5772156649) n>10^5 误差小于1e-5
J:注意负数,要在gcd上除去所有的2因子
K:直接求 a mod b
L:和式拆分即可。
M:略
N:相当于求 n! 中一个因子的个数 [n/p^i] 求和即可
O:莫比乌斯反演+分块
简易数论练习
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。