Pagini recente » Cod sursa (job #1369571) | Cod sursa (job #2152862) | Cod sursa (job #2803928) | Cod sursa (job #2990066) | Cod sursa (job #1402235)
#include <fstream>
#include <cstring>
using namespace std;
ifstream in("cifra.in");
ofstream out("cifra.out");
const int MAX = 100;
int v[MAX+1];
int logpow(int x, int p)
{
if(p == 1)
return x%10;
if((p&1) == 0)
return logpow(x*x%10,p/2)%10;
return x*logpow(x*x%10,p/2)%10;
}
int main()
{
int no;
for(int i = 1; i <= 100; i++)
v[i] = (logpow(i,i)%10+v[i-1])%10;
int n;
char s[MAX+1];
in >> n;
int l;
while(n > 0)
{
in >> s;
l = strlen(s);
if(l > 1)
out << v[(s[l-2]-'0')*10+s[l-1]-'0'] << "\n";
else
out << v[s[0]-'0']%10 << "\n";
n--;
}
return 0;
}