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 :

Question - Calcul sur des nombres


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    dad
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : dad
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Par défaut Question - Calcul sur des nombres
    Bonjour,

    Pour un devis, je dois ecrire une fonction que lorsque je rentre un nombre x, celui-ci me retourne les chiffres par lesquels x est divisable.

    Par exemple , si je rentre 15, cela me retournerait : 1, 3, 5 , 15


    Merci de l'aide, c'est grandement apprecier !!!

  2. #2
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par molymonade Voir le message
    Bonjour,

    Pour un devis, je dois ecrire une fonction que lorsque je rentre un nombre x, celui-ci me retourne les chiffres par lesquels x est divisable.

    Par exemple , si je rentre 15, cela me retournerait : 1, 3, 5 , 15


    Merci de l'aide, c'est grandement apprecier !!!
    Bonsoir, :-)
    Une solution triviale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> x = 1000
    >>> def facteurs(x):
    	lst = []
    	for nb in range(1, x + 1):
    		if not(x % nb):
    			lst.append(nb)
    	return lst
     
    >>> facteurs(x)
    [1, 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250, 500, 1000]
    Une autre un peu plus efficace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >>> x = 1000
    >>> def facteurs(x):
    	from math import sqrt, ceil
    	lst = []
    	for nb in range(1, ceil(sqrt(x))):
    		if not(x % nb):
    			lst.append(nb)
    			lst.append(x // nb)
    	lst.sort()
    	return lst
     
    >>> facteurs(x)
    [1, 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250, 500, 1000]
    Mais bon, il y a sans doutes d'autres algorithmes (wiki??)

    Clodion

  3. #3
    Futur Membre du Club
    Homme Profil pro
    dad
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : dad
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Par défaut re
    Bonjour,

    Je dois simplement utiliser une boucle while et des If, elif et for. Je ne peux utiliser des formules math.sqrt, avez vous une idee ?



    Citation Envoyé par Clodion Voir le message
    Bonsoir, :-)
    Une solution triviale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> x = 1000
    >>> def facteurs(x):
    	lst = []
    	for nb in range(1, x + 1):
    		if not(x % nb):
    			lst.append(nb)
    	return lst
     
    >>> facteurs(x)
    [1, 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250, 500, 1000]
    Une autre un peu plus efficace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    >>> x = 1000
    >>> def facteurs(x):
    	from math import sqrt
    	lst = []
    	for nb in range(1, int(sqrt(x + 1) + 1)):
    		if not(x % nb):
    			lst.append(nb)
    			lst.append(x // nb)
    	lst.sort()
    	return lst
     
    >>> facteurs(x)
    [1, 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250, 500, 1000]
    Mais bon, il y a sans doutes d'autres algorithmes (wiki??)

    Clodion

  4. #4
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par molymonade Voir le message
    Bonjour,

    Je dois simplement utiliser une boucle while et des If, elif et for. Je ne peux utiliser des formules math.sqrt, avez vous une idee ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> x = 1000
    >>> lst = []
    >>> _ = [(lst.append(nb), lst.append(x // nb)) for nb in range(1, x) if not(x % nb) and (nb * nb <= x)]
    >>> lst.sort()
    >>> lst
    [1, 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 125, 200, 250, 500, 1000]
    Clodion

    PS: sinon, il serait peut-être intéressant d'essayer de comprendre les posts précédents et d'essayer de coder un peu, non?

Discussions similaires

  1. Réponses: 7
    Dernier message: 13/01/2015, 10h06
  2. TCD avec champ calculé sur des champs nombre
    Par Scrabblouille dans le forum Excel
    Réponses: 0
    Dernier message: 06/10/2011, 20h16
  3. Comment calculer des moyennes sur des nombres positifs
    Par robertetgorgette dans le forum Access
    Réponses: 2
    Dernier message: 20/07/2006, 14h05
  4. Réponses: 4
    Dernier message: 15/12/2002, 04h19

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