20160808_ZF_数论

来源:互联网 发布:知径公司法律师团 编辑:程序博客网 时间:2024/05/29 12:32

一、线性筛

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) = nd与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】

0 0
原创粉丝点击