This is a program I coded with help from one of my friends in spare time. It takes radicals with any index and puts them in simplest radical form. It handles large and imaginary numbers, and also has a full gui menu. The only limitation is you can't overfow the FACTR list (this happens with 5+ digit numbers sometimes).

Please provide some feedback/suggestions to help me improve this program :)

```
::"RADICAL REDUCER 5.4
:FnOff :PlotsOff
:AxesOff
:Real
:ClrHome
:Output(1,1,”::::Radical:::::”)
:Output(8,1,”::::Reducer:::::”)
:Disp “”
:Disp “”
:Disp “Welcome to v5.4”
:Disp “radical reducer”
:Disp “by Matt M”
:Disp “and Alex D”
:Pause :ClrHome
:ClrDraw
:If 3.14θ:Then
:3→
:Lbl AA
:Output(1,1,”::::Radical:::::”)
:Output(8,1,”::::Reducer:::::”)
:Output(3,7,” √()”)
:Output(4,7,”3√()”)
:Output(5,7,”x√()”)
:Output(6,7,”Quit”)
:Output(X,5,”<”)
:Output(X,12,”>”)
:While 1
:getKey→K
:While K=0
:getKey→K
:End
:If K=25:Then
:Output(X,5,” “)
:Output(X,12,” “)
:X-1→X
:If X=2:6→X
:Goto AA
:Goto AA
:Else
:If K=34:Then
:Output(X,5,” “)
:Output(X,12,” “)
:X+1→X
:If X=7:3→X
:Goto AA
:Goto AA
:Else
:If K=105:Then
:Goto EX
:Else
:If K≠25 or 34 or 105:Then
:Goto AA
:End
:Lbl EX
:ClrHome
:Disp “”
:Disp “”
:Output(1,1,”::::Radical:::::”)
:Output(8,1,”::::Reducer:::::”)
:If X=3:Then
:2→T
:Else
:If X=4:Then
:3→T
:Else
:If X=5:Then
:Disp “”
:Input “Index: “,T
:Else
:If X=6:Then
:Disp “Make it a great”
:Disp “day – or not –”
:Disp “the choice is”
:Disp “yours :)”
:Pause :FnOn :AxesOn
:ClrHome
:Stop
:End
:End
:End
:End
:Output(8,1,”::::Reducer:::::”)
:Input “x√”,S
:Output(8,1,”::::Reducer:::::”)
:ClrList ∟FACTR, ∟RAD
:DelVar A:DelVar B:DelVar C:DelVar D:DelVar E
:3→dim(∟RAD)
:0→∟RAD(1)
:S→U
:If S<0:Then
:1→∟RAD(1)
:abs(S)→S
:End
:1→∟RAD(2)
:S→∟RAD(3)
:Lbl RE
:∟RAD(3)→A
:ClrDraw
:Text(10,10,”FACTORING...”)
:200→dim(∟FACTR)
:abs(A)→A
:√(A)→B
:iPart(B)→B
:0→Z
:0→C
:1→E
:While B>C
:C+1→C
:A/C→D
:If fPart(D)=0:Then
:C→∟FACTR(E)
:D→∟FACTR(E+1)
:‾C→∟FACTR(E+2)
:‾D→∟FACTR(E+3)
:E+4→E
:Z+1→Z
:End
:End
:If 3.14≠θ:Then
:ClrDraw
:Text(10,10,”SIMPLIFYING...”)
:For(I,E,1,-1)
:If I>dim(∟FACTR):Then
:1→W
:Goto ER
:End
:If ∟FACTR(I)>1:Then
:If round(Tx√(∟FACTR(I)),0)=Tx√(∟FACTR(I)):Then
:Tx√(∟FACTR(I))
:Ans*∟RAD(2)→∟RAD(2)
:∟RAD(3)/∟FACTR(I)→∟RAD(3)
:Goto RE
:End
:End
:End
:If 3.14≠θ:Then
:Lbl ER
:ClrDraw
:If W≠0:Then
:Text(5,10,”x√”,U,” = ERR:OVERFLOW”)
:Else
:If int(T/2)≠T/2 and ∟RAD(1)=1:Then
:If ∟RAD(3)=1:Then
:Text(5,10,“x√”,U,“ = ”,‾∟RAD(2))
:Else
:Text(5,10,“x√”,U,“ = ”,‾∟RAD(2),” x√”,∟RAD(3))
:End
:End
:If int(T/2)=T/2 and ∟RAD(1)=1:Then
:If ∟RAD(3)=1:Then
:Text(5,10,“x√”,U,“ = ”,∟RAD(2),”i”)
:Else
:Text(5,10,“x√”,U,“ = ”,∟RAD(2),”i x√”,∟RAD(3))
:End
:End
:If ∟RAD(1)=0:Then
:If ∟RAD(3)=1:Then
:Text(5,10,“x√”,U,“ = ”,∟RAD(2))
:Else
:Text(5,10,“x√”,U,“ = ”,∟RAD(2),” x√”,∟RAD(3))
:End
:End
:End
:Text(15,10,”X = “,T)
:Text(32,30,”PROGRAM BY”)
:Text(42,25,”ALEX AND MATT”)
:Text(57,2,”PRESS ENTER TO CONTINUE...”)
:End
:Pause :ClrHome
:Goto AA
:End
:End
```

Language: TI-BASIC

Coded on: TI-83+

Compatibility: 83, 83+, 83 SE, 84+, 84 SE

Program Size: 1.9k

Compatible with MirageOS?: Yes

Thanks!