Pagini recente » Cod sursa (job #1138577) | Cod sursa (job #2292832) | Cod sursa (job #1916481) | Cod sursa (job #1884342) | Cod sursa (job #1289770)
#include <stdio.h>
#include <string.h>
#define LMax 110
const char IN[] = "cifra.in", OUT[] = "cifra.out";
int Tes, sum = 0;
int v[25];
int num[LMax];
int pow( int x, int p ) {
int sol = 1;
x %= 10;
for ( int i = 0; ( 1 << i ) <= p; ++ i ) {
if ( (1 << i) & p )
sol = sol * x % 10;
x = x * x % 10;
}
return sol;
}
void read( int * a ) {
static char s[LMax];
scanf("%s", s + 1);
a[0] = strlen(s + 1);
for ( int i = 1; i <= a[0]; ++ i )
a[i] = s[a[0] - i + 1] - '0';
}
void write( int * a ) {
for ( int i = a[0]; i > 0; -- i )
printf("%d", a[i]);
printf("\n");
}
int main() {
freopen(IN, "r", stdin);
freopen(OUT, "w", stdout);
for ( int i = 1; i <= 20; ++ i )
v[i] = pow(i, i);
for ( int i = 1; i <= 20; ++ i )
sum += v[i];
scanf("%d", &Tes);
while ( Tes -- ) {
int r, s = 0;
for ( int i = num[0]; i >= 0; -- i )
num[i] = 0;
read(num);
r = num[2] * 10 + num[1];
for ( int i = 1; i <= r; ++ i ) s += v[(i - 1) % 20 + 1];
printf("%d\n", s % 10);
}
return 0;
}