【正睿多校联盟Day4 T4 简单的数论题】
2018-06-06 18:04
204 查看
题目名有毒
由于并没有系统地开始学习数论,所以数论题基本靠暴力。
然鹅本题的题解相当简单:
emmm....我当你没说
一个简单易懂的方法是这样的:
1. 欧拉定理的推论
若正整数a,n互质,则对于任意正整数b,有 a^b≡a^(b mod φ(n)) (mod n)
2.欧拉函数
我们用1~n中与n互质的数的个数称为n的欧拉函数。
欧拉函数我们用φ(n)表示。
特殊地,当n为质数时,φ(n)=n-1.
那么我们可以综合以上知识
先求出b^c mod (p-1) ,再用快速幂求出a^(b^c mod (p-1))%p.
code
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 ll a,b,c,p; 5 ll ksm(ll x,ll y,ll moder) 6 { 7 ll ans=1; 8 while(y) 9 { 10 if(y&1) ans=ans*x%moder; 11 y>>=1; 12 x=x*x%moder; 13 } 14 return ans; 15 } 16 int main() 17 { 18 scanf("%lld%lld%lld%lld",&a,&b,&c,&p); 19 ll tmp=ksm(b,c,p-1); 20 printf("%lld",ksm(a,tmp,p)); 21 return 0; 22 }
相关文章推荐
- HDU 3826 Squarefree number 简单的数论题
- HDOJ 1163 Eddy's digital Roots(简单数论)
- [kuangbin带你飞]数论基础的简单题解
- [NOIP2004]虫食算 T4 简单搜索+剪枝
- CF230b: T-primes(简单数论)
- 庞果网-在线编程挑战 幸运数 简单数论.......
- BZOJ 2190 [SDOI 2008]仪仗队 简单数论
- LightOJ - 1282Leading and Trailing (快速幂简单数论求幂数前几位)
- HDOJ 1163 Eddy's digital Roots [简单数论]
- HDOJ,数论简单入门题目,杭电1262,寻找素数对
- 简单数论问题
- uva 10780Again Prime? No Time.(简单数论)
- hdu 1395 2^x mod n = 1 (简单数论)
- hdu 1164 数论的简单定理
- poj 2992 Divisors 简单的数论问题
- ACdream 简单数论 专题
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 F-等式 简单数论题
- 组合数简单求法(数论)
- (step7.2.3)hdu 2554(N对数的排列问题——简单数论)
- sgu 107 (简单数论)