#include <stdio.h>
#include <stdlib.h>

int init_z(int e){
        int i;
        for(i = 0;i * i * i <= e;i++);
        return i-1;
}

int init_y(int e){
        int i;
        for(i = 0;i * i <= e;i++);
        return i-1;
}


int m_min(int e){
        int m = 1000000;;
        int z = init_z(e);
        
        for(;z>=0;z--){
                int y = init_y(e-(z*z*z));
                for(;y>=0;y--){
                        int x = e - (z*z*z + y*y);
                        if(m > x + y + z){
                                m = x + y + z;
                        }
                }
        }
        return m;
}

int main(){
        int x, y, z;
        int e;
        
        
        while(1){
                scanf("%d",&e);
                if(e==0){
                        break;
                }
                printf("%d\n",m_min(e));
        }
        return 0;
}