IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Aide Nombres parfaits


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 7
    Par défaut Aide Nombres parfaits
    Bonjour,

    J'ai fait un programme demandant à l'utilisateur d'entrer un nombre et le programme affiche les nombres parfaits jusqu'au nombre saisi.
    Cependant, le programme ci dessous fonctionne mais plus les valeurs deviennent grandes plus il long à afficher les nombres et à partir d'un certain seuil il me met un message d'erreur "Memory Error"

    Comment corriger ca ?

    Merci


    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
    nombre=int(input("nombre Max"))
    liste=[]
    liste2=[]
    T=0
    aff=0
    for var in range(1,nombre+1,1):
        liste.append(var)
    for var in range(1,nombre+1,1):
        liste2.append(var)
    liste = liste * nombre
    liste.sort()
    liste2 = liste2 * nombre
     
    for Z in range(nombre,nombre**2,1):
        aff=aff+1
        if (liste[Z])>(liste2[Z]) and (liste[Z])%(liste2[Z])==0:
            T=((liste2[Z])+T)
        if aff==nombre:
            aff=0
            if T==(liste[Z]):
                print(T)
            T= 0

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Il n'est pas difficile de comprendre que tes listes deviennent rapidement trop grandes pour ton système.

    De plus elles sont inutiles.

    Tu peux écrire ce code en dix lignes sans utiliser de liste.

    Une piste: les nombres parfaits sont pairs.

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par alsta Voir le message
    Cependant, le programme ci dessous fonctionne mais plus les valeurs deviennent grandes plus il long à afficher les nombres et à partir d'un certain seuil il me met un message d'erreur "Memory Error"

    Comment corriger ca ?
    "Memory Error" signifie que votre algorithme consomme trop de mémoire.
    En faisant quelques recherches, vous trouverez plein d'algo. traduits en Python: à vous de trouver le plus efficace.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Et avec python il est possible de faire de très beaux codes efficaces et concis sur ce type d'exercice !

Discussions similaires

  1. Nombres parfaits : petite erreur dans l'algorithme
    Par katrena99 dans le forum Pascal
    Réponses: 6
    Dernier message: 27/01/2014, 22h36
  2. Les nombres parfaits
    Par Trap D dans le forum Haskell
    Réponses: 8
    Dernier message: 14/01/2013, 23h46
  3. Calculer les quatre premiers nombres parfaits
    Par nzokou eric dans le forum Pascal
    Réponses: 2
    Dernier message: 28/11/2008, 20h51
  4. pb nombres parfaits et amis
    Par snake264 dans le forum Mathématiques
    Réponses: 18
    Dernier message: 25/01/2008, 16h05
  5. nombres parfaits...
    Par giminik dans le forum Mathématiques
    Réponses: 7
    Dernier message: 15/10/2002, 18h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo