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

C Discussion :

Algorithme pour nombres premiers de 0 à 1000


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 4
    Par défaut Algorithme pour nombres premiers de 0 à 1000
    Bonsoir,
    Je voudrais afficher les nombres premiers de 0 à 1000 mais mon algorithme n'est jamais le bon.

    J'ai essayé de procéder de la manière la plus simple avec les quelques notions que j'ai (je n'ai commencé à rentrer dans ce domaine que la semaine dernière). Cependant, je me retrouve face à un mur. Ce que je souhaite, c'est afficher les nombres premiers après compilation et non pas afficher "le nombre est premier". J'ai essayé de faire une boucle qui répéterait la vérification du nombre (1er ou pas) en utilisant les données : un nombre premier est divisible par 1 et lui même.

    Mais voilà, après compilation, je n'ai pas les nombres premiers qui s'affichent.
    Ce que j'aimerais savoir, c'est ce qui manque à mon algorithme. Si je dois encore faire continue et ajouter d'autres données pour que les nombres premiers s'affichent.

    Mon algorithme est le suivant :

    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
    #include "stdio.h"
    void main()
    { 
         int=i ; 
         i=0
         while(i<1000)
                {
                        i=i/i , i=i/1 ; 
                        if(i==0)
                             {
                                    printf("le nombre n'est pas premier ") ; 
                            }
                        else
                             {
                                    printf("le nombre est premier  %i\n",i) ; 
                            }
                               i++
               }
    }
    Merci à vous !

  2. #2
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    Bonsoir,

    • soit vous les afficher au fil de l'eau dans la boucle for. Supprimer les lignes "Ce nombre est premier" et ce "nombre n'est pas premier". Un printf(" %d",i); devrait faire l'affaire. Remarquez que j'ai mis un espace pour séparer les nombres. Un printf("%d\n",i); permet d'avoir des sauts de lignes.
    • Soit vous les écrivez dans un fichier (avec un caractère d'espacement, exemple: un espace).

  3. #3
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 788
    Par défaut
    Hello,

    1) ce code ne compile pas
    2) que va-t-il se passser ligne 8 quand i vaut 0 ?
    3) et même si le programme démarre avec i=1, i ne dépassera jamais 2 dans le while !

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 4
    Par défaut
    De ce que j'ai retenu en cours le % permet d'afficher la réponse avec en plus le type de variable ( %i, %f...) d est-il donc un type de variable nommé diviseur ?

  5. #5
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    %d permet d'afficher des nombres entier.

    Comme l'a dit edgarjacobs
    ce code ne compile pas
    .
    Prenez en compte cette remarque s'il vous plaît.

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 4
    Par défaut
    D'accord merci, je vais tout revoir d'abord

  7. #7
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 644
    Par défaut Avant de commencer
    Bonjour,

    Un nombre premier n'est pas un nombre qui se divise par 1 ou lui-même (tous les nombres sont ainsi sauf 0). Un nombre premier est un nombre qui ne se divise que par 1 et lui même. L'algorithme trivial consiste à s'assurer qu'il ne se divise pas par un autre nombre entre 2 et n-1. Une première amélioration consiste à ne le vérifier qu'entre 2 et la racine carrée de n (arrondi inférieur genre floor(sqrt(n)) ). Une deuxième amélioration (si n maxi n'est pas trop grand comme ici) consiste à conserver les nombres premiers déjà trouvés dans un tableau et ne diviser que par ces nombres (toujours jusqu'à la racine carrée de n).

    L'algorithme déterminé, le codage peut commencer (ne pas hésiter à bien vérifier que chaque élément sollicité du langage est bien compris).

    Bon courage

Discussions similaires

  1. Algorithme pour tableau de nombres premiers
    Par Fawn_noOb_wxPython dans le forum Général Python
    Réponses: 15
    Dernier message: 17/01/2018, 11h56
  2. algorithme des nombres premiers
    Par sali2801 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 01/11/2010, 17h28
  3. algorithme pour programmation linéare en nombre entier
    Par kious dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 03/05/2006, 09h17
  4. Algorithme pour trier trois nombres
    Par legosam dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 17/01/2005, 21h47

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