Cod sursa(job #49105)

Utilizator silvia_the_bestSilvia Pripoae silvia_the_best Data 5 aprilie 2007 12:48:11
Problema Cifra Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.54 kb
const v:array[1..20]of integer=(1,5,2,8,3,9,2,8,7,7,8,4,7,3,8,4,1,5,4,4);
var t,ucif,r,i,j,k,p,sum,q,lung:longint;
    n:integer;
    sn:string[100];
    f,g:text;

begin
     assign(f,'cifra.in');
     reset(f);
     readln(f,t);
     assign(g,'cifra.out');
     rewrite(g);
     {
     for i:=1 to t do readln(f,n[i]);
     for i:=1 to t do begin
         sum:=0;
         for j:=1 to n[i] do begin
             ucif:=j mod 10;
             r:=j mod 4;
             if r=0 then r:=4;
             p:=1;
             for k:=1 to r do p:=p*ucif;
             sum:=(sum+p) mod 10;
         end;
         writeln(g,sum);
     end;
     }
     for i:=1 to t do begin
        readln(f,sn);
        lung:=length(sn);
        if lung=1 then n:=ord(sn[1])-ord('0')
        else n:=(ord(sn[lung-1])-ord('0'))*10+ord(sn[lung])-ord('0');
        q:=n div 20;
        sum:=(q*4) mod 10;
        {
        for j:=1 to n mod 20 do begin
             ucif:=j mod 10;
             r:=j mod 4;
             if r=0 then r:=4;
             p:=1;
             for k:=1 to r do p:=p*ucif;
             sum:=(sum+p) mod 10;
         end;
         }
         sum:=(sum+v[n mod 20]) mod 10;
         writeln(g,sum)
     end;
     {
     sum:=0;
     for j:=1 to 20 do begin
             ucif:=j mod 10;
             r:=j mod 4;
             if r=0 then r:=4;
             p:=1;
             for k:=1 to r do p:=p*ucif;
             sum:=(sum+p mod 10) mod 10;
             write(g,' ',sum);
     end;
     }
     close(f);
     close(g);
end.