Pagini recente » Cod sursa (job #2437148) | Cod sursa (job #170610) | Cod sursa (job #1513497) | Cod sursa (job #117334) | Cod sursa (job #903975)
Cod sursa(job #903975)
#include<stdio.h>
#include<string.h>
int main()
{
int t,lungS,nr,n,p,i,j,k,suma,x;
char s[1000];
FILE *f=fopen("cifra.in","r"),*g=fopen("cifra.out","w");
fscanf(f,"%d",&t);
for(i=0;i<t;i++)
{
//citeste numarul ca sir de caractere
//nu ne intereseaza decat ultimele 2 cifre
fscanf(f,"%s",s);
//ultima cifra o fac int
lungS=strlen(s);
nr=s[lungS-1]-48;
//daca numarul are mai mult de o cifra, formam numar din ultimele 2
if(lungS>1)
nr+=(s[lungS-2]-48)*10;
//fac calculele:
suma=0;
//incep de la 2, primul numar are intotdeauna 1 dupa ridicare deci il voi trata la final
for(j=1;j<=nr;j++)
{
n=j%10; // ridicarea la putere are nevoie de ultima cifra
p=j%4; // ultima cifra se reia din 4 in 4
x=1;
p==0?p=4:p;
for(k=0;k<p;k++)
x*=n,x%=10;// intotdeauna pastrez doar ultima cifra
suma+=x;
}
fprintf(g,"%d\n",suma%10);
}
fclose(f);
fclose(g);
}