快速幂及求余

 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 typedef long long ll ;
 5 ll fun(ll x,ll y)
 6 {
 7     ll ans=1;
 8     while(y)
 9     {
10         if(y&1)
11             ans*=x;
12         x*=x;
13         y>>=1;
14     }
15     return ans;
16 }
17 int main()
18 {
19     ll a,b;
20     while(cin>>a>>b)
21     {
22         cout<<fun(a,b);
23     }
24 }
 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 typedef long long ll ;
 5 ll fun(ll x,ll y,ll k)
 6 {
 7     ll ans=1;
 8     while(y)
 9     {
10         if(y&1)
11             ans*=x,ans%=k;
12         x*=x,x%=k;
13         y>>=1;
14     }
15     return ans;
16 }
17 int main()
18 {
19     ll a,b,k;
20     while(cin>>a>>b>>k)
21     {
22         cout<<fun(a,b,k);
23     }
24 }

 

posted @ 2019-03-02 11:52  世子抱瑜玉  阅读(174)  评论(0编辑  收藏  举报