【复习】快速幂取模

啊嘞,复习快速幂……

(ab)mod c=(a mod c)(b mod c)mod c 

引理有点没转过弯来……

位运算真tm快

代码

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #define ll long long
 5 using namespace std;
 6 int pow1(int,int,int);
 7 int main()
 8 {
 9     int n;
10     cin>>n;
11     while(n--)
12     {
13     int a;
14     scanf("%d",&a);
15     printf("%d\n",pow1(a,a,10));
16     }
17 
18 }
19 int pow1(int x,int y,int z)
20 {
21     ll base,ans=1;
22     x%=z;
23     while(y!=0)
24     {
25         if(y&1) ans=ans*x%z;
26         x=x*x%z;
27         y>>=1;
28     }
29     return ans%z;
30 }

 

posted @ 2017-10-27 17:24  Maydaytyh  阅读(265)  评论(1编辑  收藏  举报