zoukankan      html  css  js  c++  java
  • 【学习】数论

    积性函数

    定义

    若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://blog.csdn.net/w144215160044/article/details/51158735

    https://blog.csdn.net/ydd97/article/details/47805419

    https://blog.csdn.net/nan81962325/article/details/79964951

    https://blog.csdn.net/weixin_30530523/article/details/94941091

  • 相关阅读:
    spring cloud配置中心
    网关中自定义登陆验证过滤器
    spring cloud网关
    Hystrix断路器 熔断器Hystrix的在Fegin的集成
    Hystrix断路器 熔断器Hystrix的在Ribbon的集成
    负载均衡二Feign
    Eureka负载均衡Ribbon
    Eureka高可用注册中心(解决单点故障)
    Eureka多服务调用
    input错误提示,点击提交,提示有未填项,屏幕滑到input未填项的位置
  • 原文地址:https://www.cnblogs.com/jian-song/p/11619199.html
Copyright © 2011-2022 走看看