Pagini recente » Cod sursa (job #133967) | Cod sursa (job #947529) | Cod sursa (job #723052) | Cod sursa (job #420580) | Cod sursa (job #2640746)
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
ifstream f("cifra.in");
ofstream g("cifra.out");
int T, p[105], 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;
for(int i = max(0, k - 2); i < k; i++)
x = x * 10 + s[i] - '0';
return p[x] % 10;
}