Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def simplifie_racine(n):
'''renvoie coeff,radicande où sqrt(n)=coeff*sqrt(radicande)'''
if n == 0:
return 0, 0
else:
ncar = carrerise(n)
return int(sqrt(n // ncar)), ncar
u"décomposition en facteurs premiers ne contienne que des facteurs "
+ u"apparaissant un nombre pair de fois. D'après la question 1, " +
u"la décomposition en facteurs premiers de "
+ decimaux(autresnombres[0]))
decompautre = factoriseTex(autresnombres[0])[1]
if len(decompautre) == 1:
cor.append(u" est lui-même, car c'est un nombre premier.")
else:
cor.append(" est : \\par\n$" + decimaux(autresnombres[0]) + " = " +
decompautre[-2][5:-2] + ".$\\par")
cor.append(u"Il faut donc encore multiplier ce nombre par ")
carre = carrerise(autresnombres[0])
factsup = factoriseTex(carre)[0]
if len(factsup)==1:
cor.append(" le facteur ")
else:
cor.append(" les facteurs ")
for j in range(len(factsup)):
if (j != len(factsup)-1) and (j != len(factsup)-2):
cor.append(decimaux(factsup[j]) + " , ")
elif (j == len(factsup)-2):
cor.append(decimaux(factsup[j]) + " et ")
else:
cor.append(decimaux(factsup[j]) + ".\\par")
cor.append(u"Le nombre cherché est par conséquent " + decimaux(carre) +
def EstDecomposable(self):
"""
Renvoie True si une des racines est de la forme sqrt{a**2*b} avec a != 1
>>> from pyromaths.classes.SquareRoot import SquareRoot
>>> SquareRoot([5, 8], [1, 7]).EstDecomposable()
True
>>> SquareRoot([5, 7], [1, 7]).EstDecomposable()
False
:rtype: Boolean
"""
for e in self.racines:
if e[1] != None and (carrerise(e[1]) != e[1] or e[1] == 1):
return True
return False
u"décomposition en facteurs premiers ne contienne que des facteurs "
+ u"apparaissant un nombre pair de fois. D'après la question 1, " +
u"la décomposition en facteurs premiers de "
+ decimaux(autresnombres[0]))
decompautre = factoriseTex(autresnombres[0])[1]
if len(decompautre) == 1:
cor.append(u" est lui-même, car c'est un nombre premier.")
else:
cor.append(" est : \\par\n$" + decimaux(autresnombres[0]) + " = " +
decompautre[-2][5:-2] + ".$\\par")
cor.append(u"Il faut donc encore multiplier ce nombre par ")
carre = carrerise(autresnombres[0])
factsup = factoriseTex(carre)[0]
if len(factsup) == 1:
cor.append(" le facteur ")
else:
cor.append(" les facteurs ")
for j in range(len(factsup)):
if (j != len(factsup) - 1) and (j != len(factsup) - 2):
cor.append(decimaux(factsup[j]) + " , ")
elif (j == len(factsup) - 2):
cor.append(decimaux(factsup[j]) + " et ")
else:
cor.append(decimaux(factsup[j]) + ".\\par")
cor.append(u"Le nombre cherché est par conséquent " + decimaux(carre) +
def Decompose(self):
"""
Décompose une unique racine carrée de la forme a*sqrt(b^2*c) en a*sqrt(b^2)*sqrt(c)
>>> from pyromaths.classes.SquareRoot import SquareRoot
>>> SquareRoot([5, 8]).Decompose()
SquareRoot([[5, 4]])*SquareRoot([[1, 2]])
:rtype: string
"""
racine = self.racines[0]
if racine[1] == None: return repr(racine[0])
if isinstance(racine[1], int):
complement = carrerise(racine[1])
if complement == 1:
if racine[0] == 1:
return int(sqrt(racine[1]))
if racine[0] == -1:
return -int(sqrt(racine[1]))
if racine[1] == 1:
return str(racine[0])
return '%r*%r' % (racine[0], int(sqrt(racine[1])))
if complement == racine[1]:
return repr(self)
return '%r*%r' % (SquareRoot([racine[0], racine[1] / complement]), SquareRoot([1, complement]))
raise ValueError(u'Not Implemented : SquareRoot(%s)' % racine)