20160808_ZF_数论

一、线性筛

namespace G
{
    bool vis[_+10];
    int pnt,pri[_+10],phi[_+10],miu[_+10];
    void go()
    {
        phi[1]=miu[1]=1;
        for(int i = 2;i <= _; i++)
        {
            if(!vis[i])
            {
                pri[++pnt] = i;
                phi[i] = i-1;
                miu[i]=-1;
            }
            for(int j=1; j<=pnt && i*pri[j]<=_; j++)
            {
                vis[i*pri[j]]=1;
                if(i%pri[j]==0)
                {
                    phi[i*pri[j]] = phi[i] * pri[j];
                    miu[i*pri[j]] = 0;
                    break;
                }
                else
                {
                    phi[i*pri[j]] = phi[i] * (pri[j]-1);
                    miu[i*pri[j]] = -miu[i];
                }
            }
        }
        for(int i=1;i<=25;i++)printf("%d %d\n",i,miu[i]);
    }
}

二、积性函数


d是n约数 ∑ φ(d) = n
d与n互质 ∑ d = n * φ(n) / 2
莫比乌斯 μ(n)  = (-1) ^ k   [ n = p1 p2 ... pk , k distinct primes ]
d是n约数 ∑ μ(d) = [ n = 1 ]
φ(n) = ∑ (-1) ^ k * n / (p1 p2 ... pk) =  ∑ μ(d) * n / d

反演 F(n) = ∑ f(d)   那么 f(n) = ∑ F( n/d ) * μ(d)

三、例题

【题目1】

这里写图片描述

【题目2】

这里写图片描述

【题目3】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值