Menu

Python, carré et cubique [Fermé]

Messages postés
3
Date d'inscription
mercredi 29 avril 2015
Statut
Membre
Dernière intervention
30 avril 2015
- - Dernière réponse : fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
- 30 avril 2015 à 13:51
Bonjour,

Je dois construire un programme qui demande a l'utilisateur d'entrer un nombre, et de ce nombre je dois valider s'il est cubique et carré. J'ai quelques difficultés à l'écrire car, malgrès les commandes SQRT() ainsi que MATH.POW(x, 1.0/3) qui me rendent le carré ou cube du nombre , je ne sais comment valider pour dire si le nombre est carré et cubique ... il me manquerait la validation et je ne suis pas capable de la faire, je ne trouve pas asser de documentation.
Merci



Afficher la suite 

5 réponses

Meilleure réponse
1
Merci
Salut,

Un nombre est carré si ça racine carré est entière ? De même pour cubique ?

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 52949 internautes nous ont dit merci ce mois-ci

ProgJo
Messages postés
3
Date d'inscription
mercredi 29 avril 2015
Statut
Membre
Dernière intervention
30 avril 2015
-
Oui bien sûr... Mais le seul probleme est que la valeur de retour est un float ( donc exemple 36=6.0.... As-t-il une maniere de faire en sorte que si le nombre est entier( même s'il est représenté par un float), executer une ligne de code spécifique, sinon, dire a l'utilisateur que le nombre n'est pas carré/cubique
Messages postés
9070
Date d'inscription
dimanche 22 août 2010
Statut
Contributeur
Dernière intervention
27 janvier 2019
2008
0
Merci
Tu peux vérifier si la valeur retournée est entière en utilisant X.is_integer() en supposant que ton float soit nommé X.
ProgJo
Messages postés
3
Date d'inscription
mercredi 29 avril 2015
Statut
Membre
Dernière intervention
30 avril 2015
-
D'accord, donc 6.1 return false et 6.0 return true?
dsy73
Messages postés
9070
Date d'inscription
dimanche 22 août 2010
Statut
Contributeur
Dernière intervention
27 janvier 2019
2008 > ProgJo
Messages postés
3
Date d'inscription
mercredi 29 avril 2015
Statut
Membre
Dernière intervention
30 avril 2015
-
Oui.

Tu sais, une des forces de Python est sa console. Tu peux trés rapidement tester ce genre de fonction sans rien importer et c'est beaucoup plus rapide qu'un forum ;)
0
Merci
Tu peux aussi comparer 6.0 à 6. Ici, c'est égal. Mais par exemple, prenons la racine carré de 2 qui vaut 1.4 environ. En int, ça donnerai 1 ou 2 mais c'est différent de 1.4 donc 2 n'est pas un nombre carré
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1584
0
Merci
Bonjour,

Le mieux est de ne pas utiliser sqrt() qui retourne un float. D'une manière générale lorsqu'on souhaite travailler avec les entiers, il faut mieux rester avec les entiers pour éviter les erreurs d'arrondis.

Ici tu peux par exemple faire :
def estCarre(nb):
x = 1
while True:
tmp = x
x = (x**2 + nb)/(2*x)
if abs(x - tmp) < 2: break
return nb==x**2
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1584
0
Merci
Bonjour,

Le mieux est de ne pas utiliser sqrt() qui retourne un float. D'une manière générale lorsqu'on souhaite travailler avec les entiers, il faut mieux rester avec les entiers pour éviter les erreurs d'arrondis.

Ici tu peux par exemple faire :
def estCarre(nb):
    x = 1
    while True:
        tmp = x
        x = (x**2 + nb)/(2*x)
        if abs(x - tmp) < 2
           break
    return nb==x**2