• 模运算的世界--费马小定理


    1.费马小定理

    p是素数的情况下,对任意整数x都有x^p=x(mod p),这个定理称为费马小定理。

    如果x无法被p整除,我们有x^(p-1)=1(mod p)

    上述式子变形后a^(-1)=a^(p-2)(mod p),因此可以通过快速幂运算求出逆元。

    在不是素数的情况下,可以有类似的欧拉定理可以使用。m=p1^(e1)*p2^(e2)*p3^(e3)....pn^(en)

    合数定理:一个数K能分解成p1^(q1)*p2^(q2)...

    那么,这个数的因子个数就是(1+q1)*(1+q2)*...*1+qk


    //求欧拉函数值。复杂度O(n½)
    int euler_phi(int n)
    {
        int res=n;
        for(int i=2;i*i<=n;i++)
        {
            if(n%2==0)
            {
                res=res/i*(i-1);
                for(;n%i==0;n/=i);
            }
        }
        if(n!=1)res=res/n*(n-1);
        return res;
    }
    //O(maxn)时间内·筛出1-n欧拉函数值的表
    const int maxn=100;
    
    int euler[maxn];
    void euler_phi2()
    {
        for(int i=0;i<maxn;i++)
        {
            euler[i]=i;
    
        }
        for(int i=2;i<maxn;i++)
        {
            if(euler[i]==i)
            {
                for(int j=i;j<maxn;j++)euler[j]=euler[j]/i*(i-1);
            }
        }
    }


  • 相关阅读:
    接口测试总结
    Jmeter教程索引贴
    [转] 配置Log4j
    Jmeter报告优化之New XSL stylesheet
    Jmeter默认报告优化
    iOS 自动移除KVO观察者
    iPhone X 适配 ( iOS 11适配 )
    iOS中自动登录的设计
    iOS APP 安全测试
    APP安全测评checklist---Android
  • 原文地址:https://www.cnblogs.com/bryce1010/p/9387288.html
Copyright © 2020-2023  润新知