#include<bits/stdc++.h>
using namespace std;
int n,m,a[10000],ans=1e5;
int dfs(int p,int x,int sum){
if(sum>n||p>ans||a[x]>n)return 0;
else if(sum==n){
ans=min(ans,p);
}
else {
ans=min(ans,p+n-sum);
dfs(p+1,x+1,sum+a[x+1]);
dfs(p,x+1,sum+a[x+1]-a[x]);
dfs(p+1,x,sum+a[x]);
}
return 0;
}
int main(){
std::ios::sync_with_stdio(false);
std::cin.tie(0),cout.tie(0);
for(int i=1;i<=40;i++)
a[i]=i*i*i*i;
cin>>n;
dfs(1,1,1);
cout<<ans<<endl;
return 0;
}
多谢指教