zoukankan      html  css  js  c++  java
  • E

    - 题目大意

       如题目中所说一样,求计算a1^a2^a3^a4......^an模m的值。

    - 解题思路

       利用欧拉降幂公式,和欧拉函数即可解决。

    - 代码

    #include<iostream>
    #include<cstring>
    using namespace std;
    long long b;
    long long num[10000];
    long long powMod(long long a, long long n,long long p)
    {
    	long long ans = 1;
    	for (; n > 0; n >>= 1)
    	{
    		if (n & 1)
    			ans = ans * a%p;
    		a = a * a%p;
    	}
    	return ans;
    }
    long long getPhi(long long n) {
    	int phi = n;
    	for (int i = 2; i*i <= n; i++) {
    		if (n%i != 0) continue;
    		phi = phi / i * (i - 1);
    		while (n%i == 0) n /= i; 
    	}
    	if (n > 1) { 
    		phi = phi / n * (n - 1);
    	}
    	return phi;
    }
    long long ss(long long d, long long M) {
    	if (d == b - 1)
    		return num[d] % M;
    
    	long long phi = getPhi(M);
    	long long c = ss(d + 1, phi) + phi;
    	return powMod(num[d], c, M);
    }
    
    int main()
    {
    	char a[10];
    	long long c = 1;
    	while (cin >> a)
    	{
    		if (!strcmp(a,"#"))
    			break;
    		cin >> b;
    		for (long long i = 0; i < b; i++)
    			cin >> num[i];
    		long long e = atoi(a);
    		cout << "Case " << "#" << c << ": " << ss(0,e)<< endl;
    		c++;
    		
    	}
    return 0;
    }
    

      

  • 相关阅读:
    HashMap的put方法
    死锁相关
    AVL树
    xss漏洞
    hash
    古典密码学教学
    python | 实现控制多台机器的脚本
    python | 端口扫描器(多线程)
    每日一洞 | 细说渗透江湖之出荆棘入深林
    每日一洞 | 细说渗透江湖之柳暗花明又一村
  • 原文地址:https://www.cnblogs.com/alpacadh/p/8448355.html
Copyright © 2011-2022 走看看