My code does not clear all test cases. Please explain the mistake in my code.
#include
#include
using namespace std;
int kth_root_search(int n, int k)
{
int s = 0;
int e = n;
int ans = -1;
while(s<=e)
{
int mid = (s+e)/2;
if(pow(mid,k)==n)
{
return mid;
}
else if(pow(mid,k)<n)
{
ans = mid;
s = mid+1;
}
else
{
e = mid-1;
}
}
return ans;
}
int main()
{
int t;
cin>>t;
while(t–)
{
int k;
long long int n;
cin>>n>>k;
cout<<kth_root_search(n,k)<<endl;
}
return 0;
}