• P5091 【模板】欧拉定理


    思路

    欧拉定理

    当a与m互质时

    [a^ {phi (m)} equiv 1 (mod m) ]

    扩展欧拉定理

    当a与m不互质且(bge phi(m))时,

    [a^b equiv a^{(b\%phi(m))+phi(m)} (mod m) ]

    (b<phi(m))时,不一定正确

    代码

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    #define int long long
    using namespace std;
    int phi(int n){
        int ans=n,x=n;
        int up=sqrt(n+0.5);
        for(int i=2;i<=up;i++){
            if(x%i==0){
                ans=ans/i*(i-1);
                while(x%i==0)
                    x/=i;
            }
        }
        if(x>1)
            ans=ans/x*(x-1);
        return ans;
    }
    int pow(int a,int b,int mod){
        int ans=1;
        while(b){
            if(b&1)
                ans=(ans*a)%mod;
            a=(a*a)%mod;
            b>>=1;
        }
        return ans;
    }
    char t[20001000];
    signed main(){
        int a=0,b=0,c=0,f=true;
        scanf("%lld %lld",&a,&b);
        int mod=phi(b);
        scanf("%s",t+1);
        int len=strlen(t+1);
        for(int i=1;i<=len;i++){
            c=c*10+t[i]-'0';
            if(c>=mod){
                f=false;
                c%=mod;
            }
        }
        if(!f)
            c+=mod;
        printf("%lld
    ",pow(a,c,b));
        return 0;
    }
    
  • 相关阅读:
    ios手机和Android手机测试点区别
    业务下的测试总结
    Mac下web自动化环境部署
    Mac下查找python的安装位置以及第三方库
    简易计算器
    递归
    可变参数
    方法的重载
    方法
    三角形
  • 原文地址:https://www.cnblogs.com/dreagonm/p/10550166.html
Copyright © 2020-2023  润新知