FZU 1759-Super A^B mod C (快速幂+欧拉降幂+欧拉函数)
来源:互联网 发布:2017php面试题大全 编辑:程序博客网 时间:2024/05/18 01:30
Problem Description
Given A,B,C, You should quickly calculate the result of A^B mod C. (1<=A,C<=1000000000,1<=B<=10^1000000).
Input
There are multiply testcases. Each testcase, there is one line contains three integers A, B and C, separated by a single space.
Output
For each testcase, output an integer, denotes the result of A^B mod C.
Sample Input
3 2 4
2 10 1000
Sample Output
1
24
思路:先求出c的欧拉函数然后进行欧拉降幂,然后用快速幂求解即可
注意开longlong
代码如下
#include <iostream> #include <cstring>using namespace std; #define LL long long LL a,c;char s[1000005];LL kpow(LL x,LL n) // x^n%MAX{ LL res=1; while(n>0) { if(n & 1) res=(res*x)%c; x=(x*x)%c; n >>= 1; } return res; } //直接求解欧拉函数 LL euler(LL n){ //返回euler(n) LL res=n,a=n; for(LL i=2;i*i<=a;i++){ if(a%i==0){ res=res/i*(i-1);//先进行除法是为了防止中间数据的溢出 while(a%i==0) a/=i; } } if(a>1) res=res/a*(a-1); return res; }int main(){ while(~scanf("%d%s%d",&a,s,&c)) { int len=strlen(s); LL mod=euler(c); LL ans=0; for(int i=0;i<len;i++) ans=(ans*10+s[i]-'0')%mod; ans+=mod; printf("%lld\n",kpow(a,ans)); } return 0; }
阅读全文
0 0
- FZU 1759-Super A^B mod C (快速幂+欧拉降幂+欧拉函数)
- FZU 1759 Super A^B mod C (欧拉函数,快速幂,降幂公式)
- FZU 1759-Super A^B mod C(快速幂+大整数取模+欧拉函数)
- FZU 1759 Super A^B mod C(数论+快速幂+欧拉函数)
- FZU oj 1759 Super A^B mod C (快速幂+指数循环节+欧拉函数)
- fzu Problem 1759 Super A^B mod C(快速幂取模+欧拉函数)
- FZU 1759-Super A^B mod C (欧拉函数+降幂公式)
- FZU 1759 Super A^B mod C (欧拉函数,降幂公式)
- FZU 1759 Super A^B mod C (超级快速幂)
- FZU 1759 Super A^B mod C (欧拉降幂)
- 欧拉函数 FZOJ 1759 Super A^B mod C
- Super A^B mod C 快速幂+欧拉函数降幂
- FZU1759 Super A^B mod C 欧拉函数+快速幂+公式
- fzu1759 Super A^B mod C 【欧拉函数应用+快速幂】
- FZU 1759 Super A^B mod C
- FZU 1759Super A^B mod C
- FZU-1759 Super A^B mod C
- FZU 1759 Super A^B mod C
- 求一个无序数组的中位数
- 最新spring boot搭建,整合jsp页面以及打war包配置
- Excel在统计分析中的应用—第六章—概率分布及概率分布图-Part4-离散型概率分布(超几何分布函数HYPGEOM.DIST()的应用)
- iOS ipad和iphone兼容~demo
- python练习(二)--重命名文件
- FZU 1759-Super A^B mod C (快速幂+欧拉降幂+欧拉函数)
- 《零基础入门学习Python》学习过程笔记【54用python保存一张网站上的图片】
- HTTP前端协议
- 【PTA乙级】1007. 素数对猜想 (20)——注意问题
- Excel图表—超几何分布函数的概率分布图的绘制
- 《自制编译器》在Ubuntu16.04中运行CBC
- numpy和pandas的操作
- CentOS 6.8 永久关闭防火墙
- 32位和64位下结构体内存对齐问题