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
To embed this program on your website, copy the following code and paste it into your website's HTML: