Pagini recente » Cod sursa (job #1680086) | Cod sursa (job #485219) | Cod sursa (job #2586209) | Cod sursa (job #617989) | Cod sursa (job #1417369)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
char s[105]; int T;
ifstream in("cifra.in");
ofstream out("cifra.out");
long long Exp_log(long long x, long long y) //calculam u(x^y)
{
long long answer=1;
while(y)
{
if(y&1) answer=answer*x%10;
x=x*x%10;
y >>= 1;
}
return answer;
}
int main()
{
int i; int n,m,pow,SUMA;
in >> T; in.get();
for(i=1; i<=T; i++)
{
in.getline(s,105);
n=s[strlen(s)-1]-'0'; //cout<<strlen(s);
if(strlen(s)-1==0) {m=n; pow=m;}
else {m=s[strlen(s)-2]-'0'; pow=m*10+n;}
//out<<n<<" "<<pow<<'\n';
//calculam u(n^pow) prin ridicare la putere in timp logaritmic
//out << Exp_log(n,pow)<<'\n';
SUMA=0;
for(int k=1; k<=pow; k++)
{SUMA+=Exp_log(k,k); SUMA=SUMA%10;}
out << SUMA<<'\n';
}
return 0;
}