Pagini recente » Cod sursa (job #3291599) | Cod sursa (job #3261593) | Cod sursa (job #665222) | Cod sursa (job #3276313) | Cod sursa (job #3294335)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("cifra.in");
ofstream fout("cifra.out");
const int MOD = 10;
int lgput(int n, int a)
{
if(a == 0)
{
return 1;
}
else{
if(a % 2 == 0)
{
int val = lgput(n, a / 2);
return (val * val) % MOD;
}
return (lgput(n, a - 1) * n) % 10;
}
}
int ultima_cifra(int n, int a)
{
n = n % 10;
if(n == 1)
{
return 1;
}
else if(n == 2)
{
a = a % 4;
if(a == 0)a = 4;
return lgput(2, a);
}
else if(n == 3)
{
a = a % 4;
if(a == 0)a = 4;
return lgput(3, a);
}
else if(n == 4)
{
a = a % 2;
if(a == 0)a = 2;
return lgput(4, a);
}
else if(n == 5)
{
return 5;
}
else if(n == 6)
{
return 6;
}
else if(n == 7)
{
a = a % 4;
if(a == 0)a = 4;
return lgput(7, a);
}
else if(n == 8)
{
a = a % 4;
if(a == 0)a = 4;
return lgput(8, a);
}
else if(n == 9)
{
a = a % 2;
if(a == 0)a = 2;
return lgput(9, a);
}
else if(n == 0)
{
return 0;
}
}
signed main()
{
int t;
fin >> t;
for(int i = 1; i <= t; i++)
{
int n;
int suma = 0;
fin >> n;
for(int j = 1; j <= n; j++)
{
suma = (suma + ultima_cifra(j, j)) % 10;
}
fout << suma << "\n";
}
return 0;
}