二分的思想
#include<iostream>
#include<cmath>
using namespace std;
long long n;
long long rightt,leftt,middle;
int main(){
scanf("%lld",&n);
rightt=sqrt(n);
while(leftt<rightt){
middle=(rightt+leftt)/2;
if((middle*middle*middle<=n)&&(pow(middle+1,3)>n)){
leftt=middle;
break;
}
else if(middle*middle*middle>n){
rightt=middle-1;
}
else{
leftt=middle+1;
}
}
printf("%lld",leftt);
return 0;
}