while true
	e=gets.to_i
	break if e == 0

	m=1000000*3
	(e+1).times{|x|
		a=Math::sqrt(e).to_i
		a.times{|y|
			z3=e-x-y*y
			next if z3 < 0
			z=(z3 ** (1.0 / 3.0)).round
			z = z*z*z == z3 ? z : -1
			next if z == -1
			ans = x+y+z
			m = ans < m ? ans : m
		}
	}
	puts m
end