LAST DIGIT (SPOJ)
PROBLEM CODE(LASTDIG)
Nestor was doing the work of his math class about three days but he is tired of make operations a lot and he should deliver his task tomorrow. His math’s teacher gives two numbers a and b. The problem consist in find the last digit of the potency of base a and index b. Help Nestor with his problem. You are given two integer numbers: the base a (0 <= a <= 20) and the index b (0 <= b <= 2,147,483,000). You have to find the last digit of a^b.
Input
The first line of input contains an integer t, the number of test cases (t <= 30). t test cases follow. For each test case will appear a and b separated by space.
Output
For each test case output an integer per line representing the result.
Example
Input:
2
3 10
6 2
Output:
9
6
Solution:
#include<stdio.h>
int main()
{
int t,a,b,j=10,i=0;
scanf("%d",&t);
while(t--)
{
scanf("%d",&a);
scanf("%d",&b);
int ans=1;
while(b>0)
{
if(b%2==1){
ans=(ans*a)%j;}
b=b>>1;
a=(a*a)%j;
}
printf("%d\n",ans);
}
return 0;
}