uva 10692 - Huge Mods(数论)
来源:互联网 发布:淘宝客推广论坛 编辑:程序博客网 时间:2024/05/20 04:08
题目链接: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;}
2 0
- Uva--10692--Huge Mods【数论】
- UVA 10692 - Huge Mods(数论)
- uva 10692 - Huge Mods(数论)
- uva 10692 - Huge Mods 指数循环节
- uva 10692——Huge Mods
- UVa 10692 Huge Mods (指数循环节)
- UVa 10692 - Huge Mods(指数循环节)
- uva 10692 - Huge Mods(指数循环节)
- UVA - 10692 Huge Mods (欧拉函数)
- UVa 10692 Huge Mods(快速幂)(欧拉定理)
- UVa10692 Huge Mods
- UVa 10692 - Huge Mod (数论 + 欧拉定理扩展)
- uva10692 - Huge Mods poj2164: Remainder Calculator 指数循环节
- UVa 11344 The Huge One (模性质)
- UVa10692,Huge Mod,数论,欧拉定理,指数循环节
- UVa 11889 Benefit (数论)
- UVA 10110(数论)
- UVA 571(数论)
- linux 源码安装及库文件的一些经验
- 第一篇博客
- Cache-control使用:header('Cache-control:private')学习笔记
- CodeForces 23D Tetragon 给定凸四边形3条同边长的中点求4个顶点 计算几何
- PHP 获取系统时间
- uva 10692 - Huge Mods(数论)
- CSS基础知识
- iOS多线程初步总结
- 一维二位动态数组
- 编译Hadoop 0.22.0 源代码 出错 解决方案
- skyeye1.2.6安装
- static作用
- 并查集
- JS 控制checkbox 获取 全选 全不选 一行不选择全选则不被选择 全部选择全选被选择