Written more legibly, your code is as follows:
function(p,a,c,k,e,r){
e = function(c) {
return c < a ? '' : e(parseInt(c/a));
};
}();
So you're defining a function that takes 6 parameters, defines a function e() (in its local scope) that takes a single parameter and recursively calls itself so long as its parameter is greater than the second parameter to the original function (a), eventually either returning '' or recursing infinitely for any value of a that is between 0 and 1 (assuming a positive value of c that is initially greater than a).
The outermost function will be invoked by the eval() statement, but the inner one (e()) will not. Since e() is scoped locally to the outermost function, that makes running this code kind of pointless, at least in isolation as it is shown here. It doesn't seem like it really does anything very useful. Especially since the eval() is not providing any value for a, so when the code executes a will be undefined, meaning that e() would not do anything useful, even if it were called and even if its intended behavior could be accurately described as "useful".
Also, expect people to scold you for using eval().