from math import ceil
def sqr(s, n):
# format décimal
x = s[:] if '.' in s else s + '.0'
# Séparation suivant la décimale
a, b = x.split('.')
# Groupement par 2
a = a.rjust(2 * ceil(len(a) / 2), '0')
b = b.ljust(2 * ceil(len(b) / 2), '0')
e, f = [int(a[i: i + 2]) for i in range(0, len(a), 2)], [int(b[i: i + 2]) for i in range(0, len(b), 2)]
l = e + f
# Initialisation de la réponse
ans = ""
# compteur du nombre de décimales, premer nombre impair à retrancher
i, k = 0, 1
# Nombre auquel on retranche les imapirs successifs
m = l[0]
# Tant qu'on a pas obtenu la précision obtenue
while i < n:
# compteur du nombre d'impairs retranchés
c = 0
# tant qu'on peut retirer un nombre impair
while m - k >= 0:
m -= k
k += 2
c += 1
# on a obtenu une nouvelle décimale
ans += str(c)
i += 1
# La partie entière est obtenue, la partie décimale commence
if i == len(e):
ans += '.'
# mise à jour de l'entier auquel on retranche les imapirs successifs
m = (l[i] if i < len(l) else 0) + 100 * m
# mise à jour du premier impair que l'on retranche
k = (k - 1) * 10 + 1
return ans
# exemple universel
x = "34.136"
t = sqr(x, 30)
print(t)
To embed this program on your website, copy the following code and paste it into your website's HTML: