zoukankan      html  css  js  c++  java
  • Uva 10629 Huge Mods (指数循环节)

    题意:求 a1ˆa2ˆa3ˆ. . .ˆaN mod m

    思路:利用 和递归求解

    代码:

    #include <iostream>
    #include <string.h>
    #include <stdio.h>
    
    using namespace std;
    const int N=15;
    typedef long long ll;
    int MOD;
    int A[N],k;
    
    int phi(int n)
    {
        int rea = n;
        for(int i=2; i*i<=n; i++)
        {
            if(n % i == 0)
            {
                rea = rea - rea / i;
                while(n % i == 0) n /= i;
            }
        }
        if(n > 1)
            rea = rea - rea / n;
        return rea;
    }
    
    ll qmulti(ll a,ll b,ll m)
    {
        ll ans = 0;
        a %= m;
        while(b)
        {
            if(b & 1)
            {
                ans = (ans + a) % m;
                b--;
            }
            b >>= 1;
            a = (a + a) % m;
        }
        return ans;
    }
    
    ll qmod(ll a,ll b,ll m)
    {
        ll ans = 1;
        a %= m;
        while(b)
        {
            if(b & 1)
            {
                ans = qmulti(ans,a,m);
                b--;
            }
            b >>= 1;
            a = qmulti(a,a,m);
        }
        return ans;
    }
    
    ll Solve(int num,ll mod)
    {
        if(num==k) return A[num]%mod;
        ll tmp=phi(mod);
        ll c=Solve(num+1,tmp)+tmp;
        return qmod(A[num],c,mod);
    }
    
    int main()
    {
        char str[15];
        int cnt=0;
        ll ans;
        while(scanf("%s",str)!=-1)
        {
            if(strcmp(str,"#")==0) break;
            sscanf(str,"%d",&MOD);
            scanf("%d",&k);
            for(int i=1;i<=k;i++)
            {
                scanf("%d",&A[i]);
            }
            ans = Solve(1,MOD);
            cnt++;
            cout<<"Case #"<<cnt<<": "<<ans<<endl;
        }
        return 0;
    }

     

  • 相关阅读:
    c++中的.hpp文件
    最近用vs使用的比较好的工具
    new内存分配失败
    "0x%08x" C语言
    python爬取智联招聘工作岗位信息
    GIS应用1000例01序
    lxml 中连续调用xpath出的问题
    arcgis JavaScript API总体结构
    PostgreSQL安装
    ES6转ES5的babel的使用
  • 原文地址:https://www.cnblogs.com/simplekinght/p/6683346.html
Copyright © 2011-2022 走看看