Cod sursa(job #199545)

Utilizator LuxOccultaRadu Dolea LuxOcculta Data 19 iulie 2008 12:54:44
Problema Cifra Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
using namespace std;

#include <iostream>
#include <fstream>
#include <string.h>

int power(int x,int y){
	x%=10;
	int d=1;
	while(y--)
		d=(x*d)%10;
    return d;
}

int cifra(long long n){
	int s=0;
	while(n){
		s = s + power(n,n)%10;
		--n;
	}
	return s%10;
}

int transforma(char s[101]){
	int len=strlen(s);
	if(len==1)
		return s[0]-'0';
	return (s[len-2]-'0')*10+s[len-1]-'0';
}

int main()
{
	int t,s=0;
	char sir[105];
	int n;
	ifstream f("cifra.in");
	ofstream g("cifra.out");
	f>>t>>ws;
	while(t--){
		f>>sir>>ws;
		n=transforma(sir);
		s=(cifra(n))%10;
		g<<s<<endl;
	}
	return 0;
}