ACM — Prepared for New Acmer 快速冪法

Link

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

Problem Description

集訓進行了將近2個禮拜,這段時間以恢復性訓練爲主,我一直在密切關注你們的訓練狀況,目前爲止,對你們的表現至關滿意,首先是絕大部分隊員的訓練積極性很高,其次,都很遵照集訓紀律,最後,老隊員也起到了很好的帶頭做用,這裏特別感謝爲此次DP專題練習賽提供題目和測試數據的集訓隊隊長xhd同窗.測試

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

考慮到新隊員尚未通過系統訓練,我這裏特別添加一道簡單題:
給定三個正整數A,B和C(A,B,C<=1000000),求A^B mod C的結果.ip

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

Input

輸入數據首先包含一個正整數N,表示測試實例的個數,而後是N行數據,每行包括三個正整數A,B,C。io

Output

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

Sample Input

3
2 3 4
3 3 5
4 4 6數據

Sample Output

0
2
4di

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

相關文章
相關標籤/搜索