HDU1420
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll quick(ll a,ll b,ll c)//a为底数,b为指数,c为mode
{
ll ans=1;
while(b) //b保证不为0
{
if(b&1) //b的二进制的最后一位数
{
ans*=a;
ans%=c;
}
a*=a;
a%=c;
b>>=1;
}
return ans;
}
int main()
{
ll x,y,z,n;
cin>>n;
while(n--)
{
cin>>x>>y>>z;
cout<<quick(x,y,z)<<endl;
}
}
HDU1097
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll quick(ll a,ll b)//a为底数,b为指数
{
ll ans=1;
while(b) //b保证不为0
{
if(b&1) //b的二进制的最后一位数
{
ans*=a;
ans%=10;
}
a*=a;
a%=10;
b>>=1;
}
return ans;
}
int main()
{
ll x,y,n;
while(cin>>x>>y)
{
cout<<quick(x,y)<<endl;
}
}