I have used this code to generate root, if output is not integer it should return -1.
#include <stdio.h>
#include <math.h>
int main(){
    long int n=0;
    long int num,p,reti;
    double ret;
    scanf("%ld",&n);
    while(n!=0){
        scanf("%ld %ld",&p,&num);
        ret=pow(num,(double)1/p);
        reti=(int)ret;
        printf("%lf %lf\n",ret,(double)reti);
        if(ret!=(double)reti){
            reti=-1;
        }
        printf("%ld\n",reti);
        n=n-1;
    }
    return 0;
}
but if I give input as
1
5  3125
it should give 5, but it is giving -1.
 
     
     
     
    