uva 10692 - Huge Mods(数论)
题目大意:给出一个数的次方形式,就它模掉M的值。
解题思路:依据剩余系的性质,最后一定是行成周期的,所以就有ab=abmod(phi[M])+phi[M](phi[M]为M的欧拉函数),这样就能够依据递归去求解。
#include <cstdio>
#include <cstring>
#include <cmath>
const int maxn = 15;
int A[maxn], k;
int pow_mod (int a, int n, int M) {
    int ans = 1;
    while (n) {
        if (n&1)
            ans = ans * a % M;
        a = a * a % M;
        n /= 2;
    }
    return ans;
}
int euler_phi(int n) {
    int m = (int)sqrt(n+0.5);
    int ans = n;
    for (int i = 2; i <= m; i++) {
        if (n % i == 0) {
            ans = ans / i * (i-1);
            while (n%i==0)
                n /= i;
        }
    }
    if (n > 1)
        ans = ans / n * (n - 1);
    return ans;
}
int solve (int d, int M) {
    if (d == k - 1)
        return A[d]%M;
    int phi = euler_phi(M);
        int c = solve (d+1, phi) + phi;
    return pow_mod(A[d], c, M);
}
int main () {
    int cas = 1;
    char str[maxn];
    while (scanf("%s", str) == 1 && strcmp(str, "#")) {
        int M;
        sscanf(str, "%d", &M);
        scanf("%d", &k);
        for (int i = 0; i < k; i++)
            scanf("%d", &A[i]);
        printf("Case #%d: %d\n", cas++, solve(0, M));
    }
    return 0;
}uva 10692 - Huge Mods(数论)的更多相关文章
- uva 10692 Huge Mods 超大数取模
		vjudge上题目链接:Huge Mods 附上截图: 题意不难理解,因为指数的范围太大,所以我就想是不是需要用求幂大法: AB % C = AB % phi(C) + phi(C) % C ( B ... 
- UVA 10692 Huge Mods(指数循环节)
		指数循环节,由于a ^x = a ^(x % m + phi(m)) (mod m)仅在x >= phi(m)时成立,故应注意要判断 //by:Gavin http://www.cnblogs. ... 
- UVA 10692  Huge Mod
		Problem X Huge Mod Input: standard input Output: standard output Time Limit: 1 second The operator f ... 
- Huge Mods UVA - 10692(指数循环节)
		题意: 输入正整数a1,a2,a3..an和模m,求a1^a2^...^an mod m 解析: #include <iostream> #include <cstdio> # ... 
- 【题解】Huge Mods UVa 10692 欧拉定理
		题意:计算a1^( a2^( a3^( a4^( a5^(...) ) ) ) ) % m的值,输入a数组和m,不保证m是质数,不保证互质 裸的欧拉定理题目,考的就一个公式 a^b = a^( b % ... 
- UVA 10627 - Infinite Race(数论)
		UVA 10627 - Infinite Race option=com_onlinejudge&Itemid=8&page=show_problem&category=516 ... 
- uva 10555 - Dead Fraction)(数论)
		option=com_onlinejudge&Itemid=8&category=516&page=show_problem&problem=1496" st ... 
- uva 10560 - Minimum Weight(数论)
		题目连接:uva 10560 - Minimum Weight 题目大意:给出n,问说至少须要多少个不同重量的砝码才干称量1~n德重量,给出所选的砝码重量,而且给出k,表示有k个重量须要用上述所选的砝 ... 
- UVA 11754 - Code Feat(数论)
		UVA 11754 - Code Feat 题目链接 题意:给定一个c个x, y1,y2,y3..yk形式,前s小的答案满足s % x在集合y1, y2, y3 ... yk中 思路:LRJ大白例题, ... 
随机推荐
- C#个人笔记
			1.扩展方法:类名前面加static ,方法参数前 加this,如:对string类进行扩展 public static class string { public static ... 
- 【Eclipse】修改java代码不强制重启
			找到tomcat的server.xml文件,修改以下代码,重新发布重启.然后修改java代码就可以不用重启了. 将reloadable=“true”改成reloadable="false&q ... 
- git阶段学习总结
			学习git大约有两个星期了,脑子里总算有点干货了,可以拿出来总结一下: git,用于版本控制的,刚开始觉得它是linux下默认的命令,其实也是个工具需要apt-get install git 安装一下 ... 
- BZOJ 3403: [Usaco2009 Open]Cow Line 直线上的牛( deque )
			直接用STL的的deque就好了... ---------------------------------------------------------------------- #include& ... 
- xzzx
			创建包: CREATE OR REPLACE PACKAGE WYL_TEST_PKG_GGYW_XZZX IS -- Purpose : 公共业务-参保险种注销 --注销选择的险种,并将参保缴费信息 ... 
- Javascript 运动应用 02
			JS运动应用 多个物体同时运动 例子:多个Div,鼠标移入 ... 
- PyconChina2015丁来强Pydata Ecosystem
			pydata ecosystem基于python的数据分析生态系统 0. Agenda Data Science ecosystem Data Wrangling Data Analysis Data ... 
- 交换机Trunk端口配置
			本文为转发,简单明了,我喜欢. Trunk端口的配置步骤如下: 一 组网需求: 1.SwitchA与SwitchB用trunk互连,相同VLAN的PC之间可以互访,不同VLAN的PC之间禁止互访: 2 ... 
- 高性能IO模型浅析(彩图解释)good
			服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-blocking IO):默认创建的s ... 
- 【项目分析】利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码
			原文:[项目分析]利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码 最近正在进行项目服务的移植工作,即将JAVA服务的程序移植到DotNet平台中. 在JAVA程 ... 
