zoukankan      html  css  js  c++  java
  • [数学][广义欧拉定理]上帝与集合的正确用法

    AC代码:

    #include<cstdio>
    #include<algorithm>
    typedef long long ll;
    using namespace std;
    
    ll phi[10000005];
    ll prime[10000005],num=0;
    bool vis[10000005];
    
    void get_phi(ll n=10000000){
      phi[1]=1;
      for(ll i=2;i<=n;i++){
        if(!vis[i]) prime[++num]=i,phi[i]=i-1;
        for(ll j=1;j<=num;j++){
            ll k=i*prime[j];
            if(k>n) break;
            vis[k]=1;
            if(i%prime[j]==0){
                phi[k]=phi[i]*prime[j];
                break;
            }
            phi[k]=phi[i]*(prime[j]-1);
        }
      }
      return ;
    }
    
    ll qpow(ll a,ll b,ll mod){
      ll ret=1;
      while(b){
        if(b&1) ret=ret*a%mod;
        a=a*a%mod;
        b>>=1;
      }
      return ret;
    }
    
    ll solve(ll p){
      if(p==1) return 0;
      return qpow(2,solve(phi[p])+phi[p],p);
    }
    
    int main()
    {
        get_phi();
        ll t;scanf("%lld",&t);
        while(t--){
            ll p;scanf("%lld",&p);
            printf("%lld
    ",solve(p));
        }
        return 0;
    }
    转载请注明出处:https://www.cnblogs.com/lllxq/
  • 相关阅读:
    接口分类
    HTTPS和HTTP的主要区别
    协议类
    小程序
    Polyfill
    去重数组
    odoo 接口跨域请求报错
    docker-compose 自定义容器名称
    linux ssh 防暴力破解fail2ban
    odoo 知识点
  • 原文地址:https://www.cnblogs.com/lllxq/p/9749625.html
Copyright © 2011-2022 走看看