Pagini recente » Cod sursa (job #1349474) | Cod sursa (job #3134106) | Cod sursa (job #2192819) | Cod sursa (job #1654686) | Cod sursa (job #809835)
Cod sursa(job #809835)
#include <fstream>
#include <cstring>
using namespace std;
int pow_mod(int baz, int exp)
{
long long result = 1, m = baz;
while (exp)
{
if (exp&1)
result = (result * m) % 10;
exp /= 2;
m = (m * m) % 10;
}
return (int) result;
}
int main ()
{
int i, lg, T, suma=0, sablon[100];
char N[101];
ifstream infile;
ofstream outfile;
infile.open("cifra.in");
outfile.open("cifra.out");
sablon[0] = 0;
for (i=1; i<100; ++i)
{
suma = (pow_mod(i, i) + suma) % 10;
sablon[i] = suma;
}
infile >> T;
infile.get();
while (T--)
{
infile.getline(N,101);
lg = strlen(N);
if (lg!=1)
{
outfile << sablon[(N[lg-2]-'0')*10+(N[lg-1]-'0')] << endl;
}
else
{
outfile << sablon[N[0]-'0'] << endl;
}
}
return 0;
}