Convert radicals to mixed & entire radicals and to real numbers Challenge

The goal of this challenge is to take a radical and convert it to a reduced and entire radical, and a real number. You do not have to convert it to all 3, however, you will get bonus points for converting it to 2 or 3 of them. You will also get bonus points if your code works not just with square roots. How the input works is your choice. You don't have to parse the input so you could just have it as a function. If your unable to output the root symbol (√) then you could output it as sqrt(x) or cuberoot(x). You could also use a superscript (²√) for the index of the radical.

Rules


If you just output one of the 3 options, then you can't just output it without converting it (ie: if the input is √125 then you can't just output √125 back).
The entire radical must have no co-efficient. 
The mixed radical must have a coefficient (if there is no coefficient, then it should be 1). 
The real number (or result of the radical) should have as many decimals as possible. 


Example

Here's an example output for the square root of 125 (√125):

Entire radical: √125
Mixed radical: 5√5
Real number: 11.18033988749895


Scoring


10% off your score for outputting 2 of either an entire radical, mixed radical, or real number.
30% off your score for outputting all 3 (entire radical, mixed radical, and real number).
30% off your score for working with a radical with any index


Winner

The person with the shortest code length wins. Good luck!
C (314)

n,d;main(i){scanf("%d %d",&amp;n,&amp;d);int val[d];for(;pow(i,n)&lt;=d;i++)val[i]=pow(i,n);printf("Entire radical: %drt(%d)\n",n,d);for(i--;i&gt;0;i--)if(d%val[i]==0){printf("Mixed radical: %d*%drt(%d)\n",i,n,d/val[i]);break;}double v,x=1.5,a=d;do{v=(a/pow(x,n-1)-x)/n;x+=v;}while(abs(v)&gt;=1E-9);printf("Real number: %lf\n",x);}


Here it is with whitespace.

n,d;
main(i){
    scanf("%d %d",&amp;n,&amp;d);
    int val[d];

    for(;pow(i,n)&lt;=d;i++)
        val[i]=pow(i,n);

    printf("Entire Radical: %d*rt(%d)\n",n,d);

    for (i--;i&gt;0;i--)
        if (d%val[i]==0){
            printf("Mixed Radical: %d*%drt(%d)\n", i, n, d/val[i]);
            break;}

    double v,x=1.5,a=d;
    do{
        v=(a/pow(x,n-1)-x)/n;
        x+=v;
    }while(abs(v)&gt;=1E-9);

    printf("Real number: %lf\n", x);
} 


Input: 

2 125


Output:

Entire radical: 2rt(125)
Mixed radical: 5*2rt(5)
Real number: 11.180340


Input: 

3 125


Output:

Entire radical: 3rt(125)
Mixed radical: 5*3rt(1)
Real number: 5.000000


This isn't perfect, the root calculation will not work for all input values, and the chosen guess value is not random. It takes the whole value of the radical as input (see above).