首页 > 代码库 > 洛谷 P1226 取余运算||快速幂 题解

洛谷 P1226 取余运算||快速幂 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置。

题目链接:https://www.luogu.org/problem/show?pid=1226

题目描述

输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。

输入输出格式

输入格式:

三个整数b,p,k.

输出格式:

输出“b^p mod k=s”

s为运算结果

输入输出样例

输入样例#1:
2 10 9
输出样例#1:
2^10 mod 9=7


快速幂模板。

AC代码:
 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cstring> 5 int a,b,mod; 6 int pow(int a,int b) 7 { 8     int ans = 1,base = a%mod; 9     for(;b;b >>= 1)10     {11         if(b&1) ans = ans*base%mod;12         base = base*base%mod;13     }14     return ans;15 }16 17 int main()18 {19     scanf("%d%d%d",&a,&b,&mod);20     printf("%d^%d mod %d=%d\n",a,b,mod,pow(a,b));21     return 0;22 }

 

洛谷 P1226 取余运算||快速幂 题解