SOJ 3578 欧拉函数
来源:互联网 发布:修改linux账号权限 编辑:程序博客网 时间:2024/06/06 01:27
(a^b^c)%p a,b,c都比较大时 用欧拉函数结合快速幂来做
欧拉定理:
在数论中,欧拉定理(也称费马-欧拉定理)是一个关于同余的性质。
欧拉定理表明,若n,a为正整数,且n,a互素, (a,n) = 1,则 a^φ(n) ≡ 1 (mod n)
其中φ(n)=nT(1-1/x)其中x是n的因子
费马小定理:
费马小定理是数论中的一个重要定理,其内容为:
假如p是质数,且(a,p)=1,那么 a^(p-1) ≡1(mod p) 假如p是质数,且a,p互质,那么 a的(p-1)次方除以p的余数恒等于1
A^B%C = A^(B%phi(C)+phi(C))%C
这题模数刚好是质数
#include<stdio.h>#include<math.h>#define Mod 317000011int euler(int x){ return x-1;}int ex(int a,int b,int mod){ long long res=1; long long x=a; for(;b;b>>=1) { if(b&1) res=(res*x)%mod; x=(x*x)%mod; } return res;}int main(){ int t; scanf("%d",&t); int mod=euler(Mod); while(t--) { int a,b,c; scanf("%d%d%d",&a,&b,&c); int x=ex(b,c,mod); x+=mod; int y=ex(a,x,Mod); printf("%d\n",y); } return 0;}
下面是求欧拉函数的模板
unsigned euler(unsigned x){// 就是公式unsigned i, res=x;for (i = 2; i < (int)sqrt(x * 1.0) + 1; i++)if(x%i==0) {res = res / i * (i - 1);while (x % i == 0) x /= i; // 保证i一定是素数}if (x > 1) res = res / x * (x - 1);return res;}
- SOJ 3578 欧拉函数
- SOJ 4467 easyproblem 2【欧拉函数 最大公因数和】
- 欧拉函数
- 欧拉函数
- Relatives 【欧拉函数】
- 欧拉函数
- POJ_2407_欧拉函数
- 欧拉函数
- hdu_3501_欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数应用
- 欧拉函数
- 欧拉函数
- JavaWeb 中MVC 思想总结
- 关于rest
- 编程之美——数字哑谜
- 第15 题: 题目:输入一颗二元查找树,将该树转换为它的镜像,
- 想看看,周末到海图去逛逛
- SOJ 3578 欧拉函数
- 进程间通信详解 - 动态链接库实现
- 尽量用C的方法----在频繁执行的代码中
- 编程珠玑(三)取样问题
- 指尖上的Android之实战篇(七)
- cxGrid实现分页
- 第一章 Windows程序设计概述
- cxGrid 实用 cxComponentPrint 打印预览
- 减小Delphi2010程序的尺寸(关闭RTTI反射机制)