Problem
给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。
Input
一个数N(1 <= N <= 10^9)
Output
输出N^N的末位数字
Input示例
13
Output示例
3
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
ll qpow(ll a, ll b, ll m){
ll ans=1;
ll k=a;
while(b){
if(b&1)ans=ans*k%m;
k=k*k%m;
b>>=1;
}
return ans;
}
int main() {
int a;
scanf("%d", &a);
printf("%lld\n", qpow(a, a, 10));
return 0;
}