counting / maths /algebra /simplify_radical.py
spagestic's picture
feat: implement Gradio interfaces for algebra operations and create tabbed interface
fe0557b
"""
Simplifies a radical (square root) to its simplest form (e.g., sqrt(12) -> 2*sqrt(3)).
"""
import gradio as gr
def simplify_radical(number: int) -> str:
if not isinstance(number, int):
return "Input must be an integer."
if number < 0:
return "Cannot simplify the square root of a negative number with this function."
if number == 0:
return "0"
i = 2
factor = 1
remaining = number
while i * i <= remaining:
if remaining % (i * i) == 0:
factor *= i
remaining //= (i*i)
continue
i += 1
if factor == 1:
return f"sqrt({remaining})"
if remaining == 1:
return str(factor)
return f"{factor}*sqrt({remaining})"
simplify_radical_interface = gr.Interface(
fn=simplify_radical,
inputs=gr.Number(label="Number under radical", precision=0),
outputs="text",
title="Radical Simplifier",
description="Simplify a square root (e.g., √12 → 2√3)"
)
if __name__ == "__main__":
simplify_radical_interface.launch()