首页 > 其他 > 详细

【数论】知识

时间:2019-10-03 12:04:22      阅读:90      评论:0      收藏:0      [点我收藏+]

积性函数

 

定义

若f(x)满足f(pq)=f(p)*f(q)且p⊥q,则f(x)为积性函数。

特殊地,若不要求p⊥q,则为完全积性函数。

性质一

若将n表示成质因子分解式技术分享图片(算数基本定理)

 

则有:技术分享图片

性质二

f为积性函数且有     技术分享图片f为完全积性函数。

 

素数

 

暴力筛 

暴力出奇迹。

埃氏筛

思路就是找到一个素数后筛掉它的所有倍数。

欧拉筛

相当于埃氏筛的一个优化,即只用一个合数的最小质因数筛,避免重复筛。

技术分享图片
const int M=1e8+8;
int prime[M],cnt;//素数表 
bool ss[M];//i是否是素数 
inline void sushu(){
    memset(ss,true,sizeof(ss));
    for(int i=2;i<=M;i++){
        if(ss[i]) prime[++cnt]=i;
        for(int j=1;j<=cnt;j++){
            if(i*prime[j]>M||(!i%prime[j])) break;//筛完结束&避免重复筛 
            ss[i*prime[j]]=false;
        }
    }
    ss[1]=ss[0]=false;
} 
View Code

MIller-Rabin筛素数

看到数据范围就晓得要用了。

技术分享图片
inline ll ksm(ll a,ll b,ll mo){
    ll ans=1;
    while(b){
        if(b&1) ans*=a%mo;
        a*=a%mo;
        b>>=1;
    }
    return ans;
}
inline bool check(ll x,ll y,ll p){//二次探测
    ll tmp=ksm(x,y,p);
    if(tmp!=1&&tmp!=p-1) return false;
    if(tmp==p-1||(tmp==1&&(y&1))) return true;
    return check(x,y>>1,p);
}
inline bool millerrabin(ll x){
    if(x<=1) retunr false;
    if(x==2||x==7||x==61||(check(2,x-1,x)&&check(7,x-1,x)&&check(61,x-1,x))) return true;
    return false;
}
View Code

分解质因数

 放个链接。Pollard-Rho。下辈子考吧。

 

欧拉函数

【数论】知识

原文:https://www.cnblogs.com/jian-song/p/11619199.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!