"""DuckieDai Radical Simplifier for TI-84 Plus CE Python."""


def duckiedai_intro(program_name, wait=True):
    title = program_name[:16]
    empty = 16 - len(title)
    left = empty // 2
    right = empty - left

    print("+----------------------+")
    print("|   " + " " * left + title + " " * right + "   |")
    print("|                      |")
    print("|       __             |")
    print("|   ___(o )>  quack!   |")
    print("|   \\ <_. )           |")
    print("|    `---'             |")
    print("|     by DuckieDai     |")
    print("+----------------------+")
    print("Loading...")

    if wait:
        input("Press enter to start ")
        print("\n" * 8)


def clear_screen():
    print("\n" * 8)


def simplify_radical(n):
    outside = 1
    inside = n

    factor = 2

    while factor * factor <= inside:
        square = factor * factor

        while inside % square == 0:
            outside *= factor
            inside //= square

        factor += 1

    return outside, inside


def run_solver():
    clear_screen()

    print("RADICAL SIMPLIFIER")
    print("------------------")
    print("Enter number under")
    print("the square root.")
    print("")

    n = int(input("sqrt: "))

    if n < 0:
        clear_screen()
        print("NEGATIVE RADICAL")
        print("Use positive")
        print("number only.")
        return

    outside, inside = simplify_radical(n)

    clear_screen()

    print("RESULT")
    print("------")

    if n == 0:
        print("sqrt(0) = 0")

    elif inside == 1:
        print("Perfect square!")
        print("")
        print("sqrt(", n, ") =")
        print(outside)

    elif outside == 1:
        print("Already simple:")
        print("")
        print("sqrt(", inside, ")")

    else:
        print("sqrt(", n, ") =")
        print("")
        print(outside, "* sqrt(", inside, ")")


duckiedai_intro("Radical Simpl")

while True:
    run_solver()

    print("")
    again = input("Again? y/n: ")

    if again.lower() != "y":
        break


clear_screen()
print("DuckieDai says: done!")

