It is related to problem :http://www.codechef.com/problems/MARCHA4 where we are supposed to find first and last k digits of n^n. To find first k digits i have seen people using some log and floor functions..complete code is below:
long int firstKdigits(long long n,int k)
{ long double x, y;
x = n*log10(n);
y = floor(pow(10,x-floor(x) +k-1));
return ((int)y);
}
Can someone provide me proof of this..how it gives first k digits??