⩾

CurrentImage[];

(* Hay que introducir la llamada a la función con el número complejo en forma binómica y el índice de la raíz *)
(* De la siguiente forma RaicesComplejas[Complejo_, IndiceRaiz_] *)
(* Si introducimos el complejo directamente la i tiene que ir con mayúscula *)

Clear["Global`*"];

RaicesComplejas[Complejo_, IndiceRaiz_]:=
	      Module[{ParteReal=0, ParteImag=0, ModInicial=0,ArgInicial=0,ArgInicialGrad=0,ModRaiz=0,ArgRaiz=0,ArgRaizGrad=0,ArgFinal=0,ArgFinalGrad=0 ,ArgRad=0,ArgGrad=0,Lista={},ListaGrad={},PuntosRad={},PuntosGrad={},Raiz=0,RaizGrad=0, k=0},

           (* CÁLCULO DE LA POSICIÓN DEL COMPLEJO INICIAL*)
		     ParteReal =Re[Complejo];
                 ParteImag=Im[Complejo];    

            (* CALCULAMOS EL MÓDULO Y ARGUMENTO DEL COMPLEJO INICIAL *)
	          ModInicial=Abs[Complejo];
                   ArgInicial=Arg[Complejo];                          (* en radianes  *)        
                   ArgInicialGrad=Arg[Complejo]*(180/π);     (* en grados  *)
                   ModRaiz=ModInicial^(1/IndiceRaiz);

             (* CLASIFICACIÓN DEL CUADRANTE QUE OCUPA EL COMPLEJO *)
                   If[ParteReal≥0&&ParteImag≥0,Print["EL COMPLEJO ESTÁ EN EL PRIMER PRIMER CUADRANTE"];  (* COMPLEJO EN PRIMER CUADRANTE *)
                        ArgRad=ArgInicial;
                        ArgGrad=ArgInicialGrad,

                   If[ParteReal<0&&ParteImag⩾0,Print["EL COMPLEJO ESTÁ EN EL SEGUNDO CUADRANTE"];              (* COMPLEJO EN SEGUNDO CUADRANTE *)
                        ArgRad=ArgInicial;
                        ArgGrad=ArgInicialGrad,

                     If[ParteReal<0&&ParteImag<0,Print["EL COMPLEJO ESTÁ EN EL TERCER CUADRANTE"];               (* COMPLEJO EN TERCER CUADRANTE *)
                        ArgRad=2π+ArgInicial;
                        ArgGrad=360 + ArgInicialGrad,

                     If[ParteReal≥0&&ParteImag⩽0,Print["EL COMPLEJO ESTÁ EN EL CUARTO CUADRANTE"];             (* COMPLEJO EN CUARTO CUADRANTE *)
                       ArgRad=2π+ArgInicial;
                       ArgGrad=360 + ArgInicialGrad
                    ]]]];

                    ArgRaiz=(ArgRad/IndiceRaiz)+((2π)/IndiceRaiz)k  

             (* CALCULAMOS EL MÓDULO RAIZ Y ARGUMENTO RAIZ *)
             Print["El complejo inicial es = ",ParteReal,", ", ParteImag, "I"];
                     Print["El módulo del complejo inicial es = ",ModInicial];
                     Print["Argumento inicial calculado en radianes es = ",ArgInicial];
                     Print["Argumento inicial calculado en grados es = ", ArgInicialGrad];
                     Print["Argumento inicial desde el origen en radianes es = ", ArgRad];
                     Print["Argumento inicial desde el origen en grados es = ", ArgGrad];
                     Print["Módulo raiz= ",ModRaiz];
                     Print["El argumento raiz sigue la ecuación = ",(ArgRad/IndiceRaiz)," + ",((2π)/IndiceRaiz),"k"]
		        While[k<IndiceRaiz, 
	                                ArgRaiz=(k*360)*(π/180);  (* cálculo en radianes *)
                                ArgRaizGrad=k*360;         (* cálculo en grados *)
                                k=k+1;
			              ArgFinal=(ArgRad+ArgRaiz)/IndiceRaiz;                               (* en radianes  *)      
                                ArgFinalGrad=(ArgGrad+ArgRaizGrad)/IndiceRaiz;           (* en grados  *)      
			              Raiz=N[ModRaiz*(Cos[ArgFinal]+I Sin[ArgFinal])];
                                RaizGrad=N[ModRaiz*(Cos[ArgFinalGrad]+I Sin[ArgFinalGrad])];
			              AppendTo[Lista, ArgFinal];                                                              (* en radianes  *)      
                                AppendTo[ListaGrad, ArgFinalGrad];                                            (* en grados  *)      
                                AppendTo[PuntosRad, {Re[Raiz], Im[Raiz]}]];
		                              Print["Los argumentos de las raíces en radianes son: ",Lista];
                                            Print["Los argumentos de las raíces en grados son: ",ListaGrad];
		                              Print["Los complejos a representar son: ", PuntosRad];
		                              ListPlot[PuntosRad, PlotStyle->PointSize[0.02]]
			                   ]

RaicesComplejas[1-(Sqrt[3])I, 4]

RaicesComplejas[64,6]

RaicesComplejas[-8+8(Sqrt[3])I,4]

RaicesComplejas[-2-2I,4]

RaicesComplejas[((1-I)/(1+I)),3]

RaicesComplejas[1+(Sqrt[3])I,5]

RaicesComplejas[1-(Sqrt[3])I,4]