I’m exploring if it’s possible to create a function in GeoGebra that would take an integer as input and create a simplified radical as output. For instance, it would take \(20\) as input and return \(2\sqrt{5}\) as output. I don’t know a way, so if someone does, please tell me. (Edit: There is the SurdText command, which does exactly what I want. I still wish there was a way to create one’s own commands for use in GeoGebra textboxes… I’ll explore the CAS.)

In the meantime, I wrote the function for formatting the output in Python:

from math import floor def simpleradical(n): nabs = abs(n) trial = floor(nabs**0.5) coeff = 1 while trial > 1: if n % (trial**2) == 0: coeff = trial trial = 0 trial -= 1 remainder = nabs // coeff**2 return coeff, remainder def simpleradicalformat(n): if not(isinstance(n, int)): return "Input must be an integer" elif n == 0 or n == 1: return str(n) else: coeff, remainder = simpleradical(n) returnstring = '' if coeff > 1: returnstring = str(coeff) if n < 0: returnstring += "i" if remainder > 1: returnstring += '√' + str(remainder) return returnstring