1. 程式人生 > >洛谷 P1226 取余運算||快速冪 題解

洛谷 P1226 取余運算||快速冪 題解

代碼 amp base iostream div 其中 tro std strong

此文為博主原創題解,轉載時請通知博主,並把原文鏈接放在正文醒目位置。

題目鏈接: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 取余運算||快速冪 題解