def radice_quadrata_bombelli(N):
    # Convertire il numero in una stringa per dividerlo in gruppi di due cifre
    str_N = str(int(N))  # Convertiamo l'input in un intero e poi di nuovo in una stringa per rimuovere eventuali decimali
    groups = []
    while len(str_N) > 0:
        if len(str_N) == 1:
            groups.insert(0, int(str_N[-1]))
            str_N = str_N[:-1]
        else:
            groups.insert(0, int(str_N[-2:]))
            str_N = str_N[:-2]

    # Inizia il processo di approssimazione
    radice = 0
    resto = 0

    for group in groups:
        resto = resto * 100 + group
        divisore = radice * 2

        for x in range(10):
            if (divisore * 10 + x) * x > resto:
                x -= 1
                break

        radice = radice * 10 + x
        resto -= (divisore * 10 + x) * x

    return radice

# Test dell'algoritmo
print(radice_quadrata_bombelli(144))  # Dovrebbe stampare 32

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: