Salut !

Je me considère encore comme un petit débutant en Python, et comme l'indique le titre, je souhaiterais pouvoir réaliser une simplification de racine carré en Python.

J'ai déjà fait un programme qui fonctionne plus ou moins

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from math import *
 
carre=[4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400]
 
nb=int(input("Entrez un nombre entier à mettre sous racine : "))
 
sort=[] #liste des carrés qui vont être sorti de la racine.
 
i=0 #compteur pour avancer dans la liste
n=carre[i]
while n < int(sqrt(nb)): #inutile d'aller au delà de la racine du nombre de départ dans la liste de carrés...
    if nb%carre[i] == 0 :
        sort.append(carre[i])
        nb//=carre[i]
    else :
        i+=1
 
ext=1
for loop in range (len(sort)):
    ext*=int(sqrt(sort[loop]))
 
print(ext,"√(",nb,")")

Bon on dirait que la balise CODE du site ne reconnaît pas mon symbole... A la ligne 22 c'est un simple symbole de racine carré ^^


Exemples de résultats :


Une seule valeur dans la liste "sort[]"
Nom : dc4f1b774462e64e37b3bc5d58ce1205.png
Affichages : 4166
Taille : 9,0 Ko
> Correct


Deux valeurs dans le liste "sort[]"
Nom : 4f8d1aac6d440de5be247057b81ec997.png
Affichages : 12346
Taille : 8,9 Ko
> Correct


Petit nombre
Nom : 6f131da6189e49604a6a7a8b82464d67.png
Affichages : 4443
Taille : 8,5 Ko
> Incorrect... Ça fait 2.


Grand nombre
Nom : 4faad5c70188e1c36ed285ce3d94851b.png
Affichages : 8068
Taille : 12,0 Ko
> Erreur ? La liste n'est pourtant pas dépassée, et il y a bien une simplification possible : ça fait 2√(22)


J'utilise ce site pour voir les vrais résultats que je devrais avoir :
http://www.dcode.fr/racine-carree

Mais j'avoue que là je bloque....
Si vous pouviez m'aider à améliorer mon programme de façon à ce qu'il fonctionne correctement !


Je vous remercie par avance !