Pagini recente » Cod sursa (job #3039629) | Cod sursa (job #3244044) | Cod sursa (job #2208734) | Cod sursa (job #1395302) | Cod sursa (job #2640745)
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
ifstream f("cifra.in");
ofstream g("cifra.out");
int T, p[101], period, solve(), power(int, int);
string s;
void precalculate_periods();
int main()
{
f >> T;
precalculate_periods();
for(; T; T--)
{
f >> s;
g << solve() % 10 << '\n';
}
return 0;
}
int power(int i, int e)
{
if(e == 0)
return 1;
int ret = power(i, e / 2);
ret = (ret * ret) % 10;
if(e&1)
ret = (ret * i) % 10;
return ret % 10;
}
void precalculate_periods()
{
for(int i = 1; i <= 100; i++)
p[i] = p[i - 1] + power(i, i);
}
int solve()
{
int k = s.size(), x = 0;
if(k <= 2)
return p[s[k - 1] - '0'] % 10;
for(int i = k - 2; i < k; i++)
x = x * 10 + s[i] - '0';
return p[x] % 10;
}