Cod sursa(job #552577)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 12 martie 2011 16:35:57
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
#include<string.h>
char s[102];
long t,i;
int m,n,v[101];
int put(int n)
{int x1=n,x2=n*n,t=n,i=0,v[10],j;
while(t!=1)
       {v[i++]=t%2;
       t/=2;}
for(j=i-1;j>=0;j--)
if(v[j]==0)
       {x2=(x1*x2)%10;
       x1=(x1*x1)%10;}
else
       {x1=(x1*x2)%10;
       x2=(x2*x2)%10;}
return x1%10;}

void vect(int v[101])
{int i;
v[0]=0;
for(i=1;i<100;i++)
       v[i]=(v[i-1]+put(i))%10;}

int main()
{freopen("cifra.in","r",stdin);
freopen("cifra.out","w",stdout);
scanf("%ld\n",&t);
vect(v);
for(i=1;i<=t;i++)
       {scanf("%s\n",s);
       m=strlen(s);
       if(m>1)
              n=(s[m-2]-'0')*10+(s[m-1]-'0');
       else
              n=s[m-1]-'0';
       printf("%d\n",v[n]);}
fclose(stdin);
fclose(stdout);
return 0;}