Pagini recente » Cod sursa (job #2358772) | Cod sursa (job #2231479) | Cod sursa (job #312871) | Cod sursa (job #1729572) | Cod sursa (job #1496336)
#include <iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
int i,j,n,a[1024],s;
char c;
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 main()
{
freopen("cifra.in","r",stdin);
freopen("cifra.out","w",stdout);
scanf("%d",&n);
scanf("%c",&c);
scanf("%c",&c);
for(i=1;i<=n;i++)
{
do
{
a[++a[0]]=c-'0';
scanf("%c",&c);
}while(c!='\n');
s=0;
j=maxim(a[0]-2,1);
for(;j<=a[0];j++)
s=s*10+a[j];
printf("%d\n",suma_directa(s));
a[0]=0;
scanf("%c",&c);
}
//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;
}