Pagini recente » Diferente pentru olimpici intre reviziile 180 si 128 | Cod sursa (job #2172956) | mf_boss | Istoria paginii runda/iconcurs11/clasament | Cod sursa (job #2474080)
#include <fstream>
#include <cstring>
using namespace std;
ifstream in ("cifra.in");
ofstream out ("cifra.out");
int t;
int n, ucif;
char N[137];
int main()
{
in >> t;
for (register int q=1; q<=t; ++q)
{
in >> N;
n = strlen (N);
if (n >= 2)
n = ( N[n-2] - '0' )*10 + N[n-1] - '0';
else
n = N[n-1] - '0';
ucif = ( n/20 )*4;
n %= 20;
for (register int i=1; i<=n; ++i)
if (i%4 == 0)
ucif += (i*i)%10 * (i*i)%10;
else if (i%4 == 1)
ucif += i;
else if (i%4 == 2)
ucif += (i*i)%10;
else
ucif += (i*i)%10*i;
out << ucif%10 << '\n';
}
return 0;
}