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 :

affichage de nombres premiers


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut affichage de nombres premiers
    Voilà j'ai fait un programme qui affiche les nombres premiers. Le principe est simple je test chaque nombre pour voir s'il est divisible par un nombre premier, si oui je ne l'affiche pas, si non je l'affiche et je l'enregistre dans un tableau contenant les nombres premiers.
    Seulement j'ai le droit à un beau Floating point exception (core dumped), apparement c'est une division par 0 mais je ne la trouve pas !

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
        long long nb=3;
        long long tableau[1000]={2};
        int j=0;
     
        while(nb<100)
        {
            int i=0;
            for(i=0;i<=j;j++)
            {
                long long test=0;
                test=nb%tableau[i];
                if(test==0)
                i=j+1;
                else if(i==j && test!=0)
                {
                    printf("%lld", nb);
                    tableau[j+1]=nb;
                    j++;
                    i++;
                }
                i++;
            }
     
            nb+=2;
     
        }
     
        return 0;
    }
    Merci d'avance pour m'indiquer où est mon erreur.

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Tu est sûr de ce test ?
    Ce ne serait pas plutôt ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    Par défaut
    1) Sur la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(test==0)
    i=j+1;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(test==0)
    {
      i=j+1;
    }
    Un bonjour, un sourire, des parenthèses et des accolades... et le monde est plus beau.

    2) Sur le fond: boucle sur les i avec suppression des incrémentations des i dans la boucle

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
        long long nb=3;
        long long tableau[1000]={2};
        int j=0;
     
    	while(nb<100)
    	{
    		int i=0;
    		for(i=0;i<=j;i++)  // modiif ici
    		{
    			long long test=0;
    			test=nb%tableau[i];
    			if(test==0)
    				i=j+1;
    			else if(i==j && test!=0)
    			{
    				printf("%lld", nb);
    				tableau[j+1]=nb;
    				j++;
    			}
                             // plus d'incrementation dans la boucle
    		}
     
    		nb+=2;
     
    	}
     
    	return 0;
    }
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup à vous deux, en effet je me suis trompé dans les incrémentations. Je cherchais l'erreur où elle ne se trouve pas, alors avec ça je risquais de chercher longtemps !

  5. #5
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    Par défaut
    Il faut cliquer sur le bouton Resolu.

    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage de nombres premiers
    Par Naindev dans le forum Pascal
    Réponses: 10
    Dernier message: 28/11/2012, 19h13
  2. [défi n°8]: premiers nombres premiers
    Par javatwister dans le forum Général JavaScript
    Réponses: 41
    Dernier message: 14/06/2005, 10h22
  3. [LG]Calcul des 15 premiers nombres premiers
    Par yffick dans le forum Langage
    Réponses: 12
    Dernier message: 18/09/2004, 14h57
  4. Cripter avec des nombres premiers
    Par clovis dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 14/04/2004, 19h10
  5. premier nombre premier superieur à m=10^100+1
    Par azman0101 dans le forum Mathématiques
    Réponses: 4
    Dernier message: 17/04/2003, 03h23

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