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

Algorithmes et structures de données Discussion :

Fonction Diviseurs d'un entier strictement positif


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 24
    Points : 12
    Points
    12
    Par défaut Fonction Diviseurs d'un entier strictement positif
    Bonsoir;
    Je suis débutant en algorithmique et j'aimerais comprendre cette fonction Diviseurs qui permet de renvoyer la somme des diviseurs d'un entier strictement positif. La fonction est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Fonction Diviseurs(k:entier):entier
       i:entier
    Debut
        sdx <- 1
      pour i de 2 à(x div 2) faire
       Si (x MOD i=0)
                   Alors sdx <- sdx+1
       Fin si
      Fin pour 
    Diviseurs <- sdx
    Fin
    Je n'ai pas compris le corps de la fonction, pourquoi on a initialisé le compteur de la boucle à 2, utilisé (x div 2) et testé si (x MOD i =0). Bref, je n'ai pas compris cette fonction Alors si vous pouvez me l'éclaircir un peu, je vous serai reconnaissant
    Merci !!!

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    A première vue, ca ne retourne pas la somme des diviseurs, mais le nombre de diviseurs de x/2 (x n'étant pas défini )

    Bref, c'est assez curieux comme fonction.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre éprouvé Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Points : 961
    Points
    961
    Par défaut
    Bonjour,
    Citation Envoyé par Binôme_pfe Voir le message
    pourquoi on a initialisé le compteur de la boucle à 2,
    Afin d'éviter un test inutile qui est toujours vrai :

    Citation Envoyé par Binôme_pfe Voir le message
    utilisé (x div 2)
    Par ce que le plus grand diviseur d'un nombre x ne peut être supérieur à sa moitié ( x non compris)

    Citation Envoyé par Binôme_pfe Voir le message
    et testé si (x MOD i =0)
    Afin de déterminer si i est diviseur de x.

    Comme il a été dit, x n'est pas défini!! il doit surement s'agir du paramètre de la fonction que vous notez k.
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste!!»

Discussions similaires

  1. fonction pour détecter 1 entier
    Par amadousoind dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/01/2008, 11h00
  2. Réponses: 3
    Dernier message: 11/01/2008, 19h24
  3. Réponses: 6
    Dernier message: 22/11/2006, 10h38
  4. fonction qui transforme un entier en octet
    Par personne64 dans le forum C
    Réponses: 43
    Dernier message: 10/05/2006, 15h36
  5. Expression régulière d'un nombre strictement positif?
    Par rlnd23 dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 02/11/2005, 22h10

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