题目链接: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;
}
分享到:
相关推荐
ACM---算法数论
从整体讲解数论,课程的重点是密码学(对称密码学和非对称密码学)所涉及数学理论和有效算法实现。
大数据-算法-数论中几个著名函数的性质研究.pdf
本资源主要包括信息安全、数论基础在内的整除理论、同余理论等,有一部分初等数论的内容、密码学的内容和近世代数的内容
大数据-算法-数论中一些著名函数及和式算术性质的研究.pdf
我09年参加现场赛前准备的,这些公式有的是在POJ等OJ上做题时遇到的,还有些可能会出现的数学公式,本人非数学出身,准备的内容尚浅,就是多和乱(不敢说丰富)
很好的初等数论的教材,共三卷,这是第二卷
CJ2-07-简单数论-博弈论初步.pdf
C++ J2-04-简单数论-巩固练习.pdf
C语言-02-简单数论-整除那套理论.pdf
蓝桥杯,算法CJ2-03-简单数论-取模那套理论.pdf
在乘法数论中,在素数分解期间,用素数覆盖正整数可能被视为是并行系统的结果,当且仅当素数倒数的乘积的欧拉公式为真时,并行系统才能正常运行。 给出了质数小于或等于任意界限的精确公式。 可以使用Wolfram的...
大数据-算法-关于数论中一些和式的算术性质研究.pdf
acm-数论 有关数论的一些知识,以及算法实现等。
2009-11数论和密码--南京 不错哦 ~~~~~~~~~~~~~~~~~~~~~~~~~
法兰西数学精品译丛-解析与概率数论导引(中文版)-[法]G·特伦鲍姆-陈华一(译)-高等教育出版社-2011.pdf
代数数论包。Algebraic Number Theory package。
数论是Acm中的重点内容。历年竞赛题目, 一般都有1-2道与数论有密切关系。数论涉及的概念 和算法很多,用途也非常广泛。掌握与数论有关的 方法,是参赛者需要具备的必要技能。
锈数理论 数论中Rust算法的实现。 实现的算法包括: 核因子判别式/多项式的结果例子看一下文件data/input-discriminant.yml 。 # Find the discriminant of 2x^3 + x^2 - 2x + 3.# To feed this file to the ...