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

Macros et VBA Excel Discussion :

Code pour décomposer le nombre "52" présent en "A3" en nombres premiers


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 117
    Par défaut Code pour décomposer le nombre "52" présent en "A3" en nombres premiers
    Bonjour à tout le forum,


    Je bloque sur un petit exercice, à savoir :

    Dans la cellule "A3" j'ai le nombre "52", je souhaiterais avoir dans la ligne G (par exemple) tous les nombres premiers qui composent ce nombre 52.

    Un nombre premier est un entier naturel qui admet exactement deux diviseurs distincts entiers et positifs (qui sont alors 1 et lui-même).
    L'ensemble des nombres premiers présents dans 52 sont : 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47


    Pensez-vous qu'un code VBA est réalisable pour cela ?

    Je vous remercie vraiment pour votre aide,

    Bonne fin de journée,

    Fabien
      0  0

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Et à quel niveau se situe ton problème ?
    - celui de l'extraction des nombres premiers inclus dans l'intervalle 1 - 52
    ou
    - la détermination de ceux qui "composent" 52 ?
    Et à ce propos : qu'entends-tu exactement par "composent" ?
      0  1

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 117
    Par défaut
    Bonjour unparia,

    Merci pour ta réponse.

    Mon problème se situe au niveau de l'extraction des nombres premiers qui sont présents dans la cellule "A3" (donc dans le nombre 52). Je tourne vraiment en rond.

    Ce que j'entends par "les nombres premiers qui composent 52", ce sont tous les nombres premiers présents dans l'intervalle "0 à 52".
      0  1

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bon
    Il existe de nombreuses manières de faire cette extraction.
    En voici une, entre autres :
    un tableau dimensionné à 52 dont tu mets tous les éléments à false
    tu pars du chiffre 2 et mets à True tous ses multiples, jusqu'à 52 (ses multiples correspondront très exactement à leur index dans le tableau)
    - tu passes au suivant et refais la même chose avec ses multiples
    etc ...
    tous ceux qui, dans ton tableau, seront restés à False seront forcément des nombres premiers.
    Voilà un mécanisme (parmi d'autres, une autre fois).
    Montre-nous s'il te plait comment tu le mets (au moins tentes de le mettre) en oeuvre.
    Je n'interviendrai au besoin à nouveau qu'après cet effort.
      0  1

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Par défaut
    Salut,

    Utilisation de MOD ?

    A+
      0  0

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour OBO29
    Egalement envisageable, mais alors forcément plus lent.
      0  1

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

    Citation Envoyé par fabien32200 Voir le message
    Pensez-vous qu'un code VBA est réalisable pour cela ?
    Oui et ce facilement car c'est du niveau débutant et n'est pas inhérent au langage mais juste à une simple logique !

    La question est : quelle stratégie dois-tu appliquer (quel algorithme) ?

    Conformément aux règles de ce forum, une fois la logique acquise, commence donc ton code
    et ensuite si tu rencontres une difficulté technique inhérente au langage (donc indépendante de la logique)
    publie ici ton code entrepris accompagné d'une explication quant à cette difficulté technique …

    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …
      1  1

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Quelle que soit la stratégie adoptée, le crible classique exposé par unparia ou le Modulo évoqué par OBO29,
    pour un nombre aussi petit le résultat sera instantané et même avec des nombres à quatre chiffres !

    unparia, j'ai testé deux versions Modulo et comme il ne s'agit que de vérifier les nombres impairs
    avec comme diviseurs les nombres impairs premiers précédents déjà trouvés, c'est rapide …

    _________________________________________________________________________________________________________
    Heureux l'étudiant qui, comme la rivière, suit son cours sans quitter son lit …
      0  1

Discussions similaires

  1. VB6, code pour éffectuer la racine carré d'un nombre
    Par nap91 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/05/2011, 13h20
  2. Réponses: 7
    Dernier message: 21/10/2010, 13h30
  3. Réponses: 1
    Dernier message: 08/04/2009, 12h17
  4. [Visual Fortran 5.0] Problème pour décomposer un code
    Par laabidimhe dans le forum Fortran
    Réponses: 3
    Dernier message: 17/12/2008, 23h29

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