因子和,因子数,1到n的因子和,1到n的因子数(积性函数)

1 - 求n的因子和


因子和函数σ定义为整数n的所有正因子之和,记为σ(n)  它是一个积性函数
首先对n进行因子分解 (因子分解代码附后)
n = p1^a1 * p2^a2 * ~~~ * px ^ ax


σ(n) =((p1^(a1+1)-1)/(p1-1) * ((p2^(a2+1)-1)/(p2-1) * .... * ((pj^(aj+1)-1)/(pj-1)) = Π(j=1 -> x) (pj^(aj+1)-1)/(pj-1)
    Π:表示乘积的符号


    举个例子: 12 = 2^2 * 3^1 = p1^a1 * p2^a2     (p1 = 2; a1 = 2; p2 = 3; a2 = 1)
    而 12的因子有 1 2 3 4 6 12
    1 = 2^0 * 3^0
    2 = 2^1 * 3^0
    3 = 2^0 * 3^1
    4 = 2^2 * 3^0
    6 = 2^1 * 3^1
    12 = 2^2 * 3^1
    左边加起来 = 1+2+3+4+6+12 =  28 = (2^0 + 2^1 + 2^2) * (3^0 + 3^1) = 右边


    (2^0 + 2^1 + 2^2)  是一个首项为1,公比为2的等比数列 
    (3^0 + 3^1) 是一个首项为1 , 公比为3的等比数列 
    因为我们对n进行算数分解 所以不可能出现公比为1的情况
    根据等比数列求和公式  (1 - q^n) / (1-q)   
    分子分母同时乘-1    (q^n - 1) / (q - 1)
    因为第一项是从0开始的  所以 对于pi ^ ai 它的前n项和为 (pi^(ai+1) - 1) / (pi - 1)


    所以 σ(n) = Π(i=1 -> x) (pi^(ai+1)-1)/(pi-1) 


2 - 求n的因子个数


因子个数函数τ定义为正整数n的所有正因子个数,记为τ(n)


τ(n) = (b1+1) *

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值