Cod sursa(job #89968)

Utilizator the1dragonIonita Alexandru the1dragon Data 7 octombrie 2007 23:37:48
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
#include<string.h>

long long modulo_pow(long long a, long long b, long long n)
{
	long long c=0, d=1, i, k;
	for (k=0; d<=b; d<<=1, k++);
	d=1;
	for(i=k; i>=0; i--)
	{
		c=2*c;
		d=(d*d)%n;
		if (((b>>i)&1)==1)
		{
			++c;
			d=(d*a)%n;
		}
	}
	return d;
}
int cifra[512];
int main()
{
	freopen("cifra.in", "r", stdin);
	freopen("cifra.out", "w", stdout);
	int i, n, nr;
	char nu[128];
	for (i=1; i<=100; i++)
	{
		cifra[i]=(cifra[i-1]+modulo_pow(i, i, 10))%10;
	}
	scanf("%d", &n);
	for (i=1; i<=n; i++)
	{
		scanf("\n%s", nu);
		nr=0;
		if (strlen(nu)>1)
			nr=(nu[(strlen(nu)-2)]-'0')*10;
		nr+=nu[(strlen(nu)-1)]-'0';
		printf("%d\n", cifra[nr]);
	}
	
	return 0;
}