ac數論之n次方取模
阿新 • • 發佈:2019-01-22
傳送門
次方求模
時間限制:1000 ms | 記憶體限制:65535 KB難度:3- 描述
求a的b次方對c取餘的值
- 輸入
- 第一行輸入一個整數n表示測試資料的組數(n<100)
每組測試只有一行,其中有三個正整數a,b,c(1=<a,b,c<=1000000000) - 輸出
- 輸出a的b次方對c取餘之後的結果
- 樣例輸入
3 2 3 5 3 100 10 11 12345 12345
- 樣例輸出
3 1
10481
#include<stdio.h> #include<math.h> #include<algorithm> using namespace std; int pow(long long int a,long long int n,long long int b) {//快速冪求模 a=a%b;//初始化化底數取模 int result=1; while(n>0) { if(n%2==1)//如果是n result=result*a%b;//多乘一次取模 a=a*a%b;//相乘取模 n=n/2;//左移一位 } return result; } int main() { int n; scanf("%d",&n); while(n--) { long long int a,n,b; scanf("%lld%lld%lld",&a,&n,&b);//讀入三個數 printf("%d\n",pow(a,n,b)); } return 0; }