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; }