Rightmost Digit

Rightmost Digit

Given a positive integer N, you should output the most right digit of N^N.

The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow.
Each test case contains a single positive integer N(1<=N<=1,000,000,000).

For each test case, you should output the rightmost digit of N^N.

``````2
3
4``````

``````7
6``````

``````#include<stdio.h>
typedef long long ll;
ll mod=1e5;
ll pow(ll a,ll b){
ll ans=1;while(b!=0){
if(b%2==1)
ans=ans*a%mod;
a=a*a%mod;
b=b/2;
}
return ans;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif
//freopen("out.txt", "w", stdout);
ll n,m,ans;
while(~scanf("%lld",&n)){
while(n--){
scanf("%lld",&m);
ans=pow(m,m)%10;
printf("%lld\n",ans);
}
}
return 0;
}``````

``````#include <stdio.h>
int main()
{
long int a,k,l;
int n,c=0;
scanf("%d",&n);
while(scanf("%d",&a)!=EOF)
{
k=a%10;
if(k==0)
{printf("0\n");}
if(k==1)
{printf("1\n");}
if(k==2||k==8)
{l=a%4;
if(l==0)
printf("6\n");
if(l!=0)
printf("4\n");
}
if(k==3)
{l=a%4;
if(l==0)
printf("1\n");
if(l==1)
printf("3\n");
if(l==2)
printf("9\n");
if(l==3)
printf("7\n");
}
if(k==4)
{printf("6\n");}
if(k==5)
{printf("5\n");}
if(k==6)
{printf("6\n");}
if(k==7)
{l=a%4;
if(l==0)
printf("1\n");
if(l==1)
printf("7\n");
if(l==2)
printf("9\n");
if(l==3)
printf("3\n");
}
if(k==9)
{printf("9\n");}
c=c+1;
if(c==n)
break;
}
}
``````