ACM — Prepared for New Acmer 快速冪法

weixin_33766168發表於2016-10-09

Link

http://acm.hdu.edu.cn/showpro...

Problem Description

集訓進行了將近2個禮拜,這段時間以恢復性訓練為主,我一直在密切關注大家的訓練情況,目前為止,對大家的表現相當滿意,首先是絕大部分隊員的訓練積極性很高,其次,都很遵守集訓紀律,最後,老隊員也起到了很好的帶頭作用,這裡特別感謝為這次DP專題練習賽提供題目和測試資料的集訓隊隊長xhd同學.

特別高興的是,跟隨集訓隊訓練的一批新隊員表現非常好,進步也比較顯著,特別是訓練態度大大超出我的預期,我敢說,如果各位能如此堅持下去,絕對前途無量!

考慮到新隊員還沒有經過系統訓練,我這裡特別新增一道簡單題:
給定三個正整數A,B和C(A,B,C<=1000000),求A^B mod C的結果.

希望各位都能體會到比賽中AC的快樂,絕對的量身定製,很高的待遇喲,呵呵...

Input

輸入資料首先包含一個正整數N,表示測試例項的個數,然後是N行資料,每行包括三個正整數A,B,C。

Output

對每個測試例項請輸出計算後的結果,每個例項的輸出佔一行。

Sample Input

3
2 3 4
3 3 5
4 4 6

Sample Output

0
2
4

Code

#include <stdio.h>
int main(){
int n,c,times;
long long a;
    scanf("%d",&times);
    while(times--!=0){
    scanf("%d%d%d",&a,&n,&c);
    long long ans=1;
    while(n){
         if(n&1) ans*=a;
         ans%=c;
         a*=a;
         a%=c;
         n>>=1;        
     }
     printf("%d\n",ans);
}

} 

Keys

二分加速法(快速冪)

Reference

Jason Lee

相關文章