Untropee,
function fn(x)
{
return 1 + Math.log(x)*Math.log(x)/2|0
}
function foo(y)
{
return Math.ceil(Math.exp(Math.sqrt((y - 1)*2)))
}
var x = 20; //текущее х
var n = fn(x); //текущее n = 5
var nextX = foo(n+1); //24 будущее x при котором n увеличится
var z = nextX-x; //24 - 20 до следующего уровня 6 осталось 4
alert(fn(x+z)); //6