loop {
    e = gets.to_i
    break if e == 0
    y2s = (0..Math.sqrt(e).to_i).map{|y| y*y}
    min = Float::INFINITY
    (0..(e**(1.0/3)).to_i).each{|z|
        z3 = z * z * z
        (0..Math.sqrt(e - z3).to_i).each{|y|
            y2 = y * y
            m = z + y + (e - z3 - y2)
            min = m if m < min
        }
    }
    p min
} 