Pagini recente » Cod sursa (job #1922481) | Cod sursa (job #378752) | Cod sursa (job #1581226) | Cod sursa (job #1832808) | Cod sursa (job #1496346)
#include <iostream>
#include<stdio.h>
#include<math.h>
#include<string.h>
using namespace std;
int i,j,n,a[1024],s;
int b[1024];
char c,x[1024];
int maxim(int a,int b)
{
return a>b?a:b;
}
int suma(int n)
{ if(n==0)
return 0;
unsigned long long aux=n;
for(int i=1;i<n%4+4;i++)
{
aux*=n;
aux%=10;
}
return aux%10;
}
int suma_directa(int n)
{
n=n%100;
int s=0,i=1;
if(i>40)
{
s=8;
i=40;
}
if(i>80)
{
s=6;
i=80;
}
for(;i<=n;i++)
{
s+=suma(i);
s%=10;
}
return s;
}
int suma_finala(int n)
{
n=n%100;
return b[n];
}
int main()
{
freopen("cifra.in","r",stdin);
freopen("cifra.out","w",stdout);
scanf("%d",&n);
scanf("%c",&c);
for(i=1;i<=99;i++)
{
b[i]=(b[i-1]+suma(i))%10;
}
for(i=1;i<=n;i++)
{
scanf("%s",x);
a[0]=strlen(x);
s=0;
j=maxim(a[0]-2,1);
for(;j<=a[0];j++)
s=s*10+(x[j-1]-'0');
printf("%d\n",suma_finala(s));
a[0]=0;
}
//din 200 in 200 devine 0
/* int u;
for(u=0;u<=10000;u++)
{
for(i=0;i<4;i++)
{
for(j=0;j<=9;j++)
printf("%d ",suma(i*10+j+40*u));
}
printf("\n");
}*/
return 0;
}