Pagini recente » Cod sursa (job #675987) | Cod sursa (job #1164523) | Cod sursa (job #2169575) | Cod sursa (job #1838964) | Cod sursa (job #905124)
Cod sursa(job #905124)
#include <cstdio>
#include <cstring>
using namespace std;
const int MAX_L = 120;
int N, T, P;
int v[250];
char S[ MAX_L ];
int main()
{
FILE *f, *g;
f = fopen("cifra.in", "r");
g = fopen("cifra.out", "w");
for(int i = 1; i <= 240; ++i)
{
v[i] = 1;
for(int j = 1; j <= i; ++j)
v[i] *= i, v[i] %= 10;
v[i] += v[i-1], v[i] %= 10;
if(i % 2 == 0)
{
int ok = 1;
for(int j = 1, k = i / 2 + 1; k <= i; ++j, ++k)
if(v[k] != v[j])
ok = 0, k = i;
if(ok)
{
P = i / 2;
break;
}
}
}
fscanf(f, "%d", &T);
fgets(S, 3, f);
for( ; T; --T)
{
fgets(S, 105, f);
int len = strlen(S) - 1;
if(S[len] == '\n')
--len;
if(len > 0)
N = (S[len-1] - '0') * 10 + S[len] - '0';
else N = S[len] - '0';
fprintf(g, "%d\n", v[N%P]);
}
fclose(f);
fclose(g);
return 0;
}