Algorythmique//nombres narcissiques
Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
-
chemicalK
- Messages: 7
- Enregistré le: 06 Jan 2018, 18:32
-
par chemicalK » 04 Fév 2018, 17:19
Bonsoir!
je dois écrire en python un algorythme qui, étant donné un nombre N en entrée, renvoie ce nombre s'il est narcissique ou 0 si il ne l'est pas.
Quelqu'un peut-il m'aider et me dire si cet algorithme est juste et pourquoi c'est faux à la ligne 11?
def narcisse():
l=input('Donnez une limite dans la recherche des nombres narcissiques \n')
for k in range(l):
somme=0
n=str(k)
for lettre in n:
puissance=len(n)
chiffre=int(lettre)
somme=somme+pow(chiffre,puissance)
if(somme==k):
print k," est un nombre narcissique" (C'est la que le logiciel me met "invalid syntax")
print narcisse()
-
chan79
- Membre Légendaire
- Messages: 10330
- Enregistré le: 04 Mar 2007, 19:39
-
par chan79 » 04 Fév 2018, 18:16
salut
Pour certaines versions de python, ce qui suit print doit être en parenthèses
par exemple:
print( k," est un nombre narcissique")
En dessous de la définition de la fonction "narcisse()" il doit y avoir un décalage.
Il doit aussi y avoir un "return"
153 est un nombre narcissique 1³+5³+3³=1+125+27=153
-
pascal16
- Membre Légendaire
- Messages: 6663
- Enregistré le: 01 Mar 2017, 12:58
- Localisation: Angoulème : Ville de la BD et du FFA. gare TGV
-
par pascal16 » 04 Fév 2018, 19:39
oui, depuis Python 3 .
-
nodgim
- Habitué(e)
- Messages: 2002
- Enregistré le: 27 Jan 2008, 10:21
-
par nodgim » 05 Fév 2018, 11:29
Je ne suis pas sûr et certain que tous les lecteurs de ce site connaissent la signification d'un nombre narcissique.
Perso, je ne sais plus ce que c'est.
-
WillyCagnes
- Membre Transcendant
- Messages: 3753
- Enregistré le: 21 Sep 2013, 19:58
-
par WillyCagnes » 05 Fév 2018, 11:31
-
chan79
- Membre Légendaire
- Messages: 10330
- Enregistré le: 04 Mar 2007, 19:39
-
par chan79 » 05 Fév 2018, 12:09
à signaler de petites erreurs de Gérard Villemin (lien ci-dessus)
4150, 4151,194979 ne conviennent pas
Sinon, on peut remarquer que si un nombre est narcissique et se termine par 0, son suivant est narcissique aussi.
exemple 370 et 371
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 12:00
-
par fatal_error » 05 Fév 2018, 20:08
puissance peut etre sorti de la boucle
si on dit que ton algo retourne 0 ou le nombre on s'attend -à priori- à ce que ta fonction narcisse prenne en entrée un nombre et donne en sortie un nombre (0 ou le nombre d'entrée)
les print on s'en fou. si tu les veux c'est plutot de la forme
result = narcisse(22)
print 'le resultat:'+str(result)
edit:
- à noter que tu as les balises CODE pour conserver l'indentation
- et également que ton test sur l'égalité tu peux le faire dans la boucle pour directement retourner 0 si ta somme dépasse déjà le nombre
la vie est une fête

-
nodgim
- Habitué(e)
- Messages: 2002
- Enregistré le: 27 Jan 2008, 10:21
-
par nodgim » 06 Fév 2018, 09:58
G. Villemin a raison en signalant qu'il y a un plus grand nombre narcissique (ils sont en nombre fini).
On ne peut plus en trouver avec des nombres qui dépassent 35 chiffres.
-
chan79
- Membre Légendaire
- Messages: 10330
- Enregistré le: 04 Mar 2007, 19:39
-
par chan79 » 06 Fév 2018, 13:32
nodgim a écrit:G. Villemin a raison en signalant qu'il y a un plus grand nombre narcissique (ils sont en nombre fini).
On ne peut plus en trouver avec des nombres qui dépassent 35 chiffres.
oui, d'après wolfram, il y en 88
http://mathworld.wolfram.com/NarcissisticNumber.htmlL'algo de chemicalK, après rectifications, permet d'obtenir rapidement ceux qui ont jusqu'à 8 chiffres (ensuite, faut pas être pressé !)
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 60 invités