Nombre premier

Résolu
sanaa1 Messages postés 64 Statut Membre -  
sanaa1 Messages postés 64 Statut Membre -
Bonjour,
je doi verifier si un nombre saisi au clavier est premier ou non voila mon programme ,je sais pas pourquoi ca marche pas,aidez moi svp

#include <iostream>
using namespace std;
int main()
{
int n;
cout<<"entrez un nombre entier positif"<<endl;
cin>>n;
for ( int i = 3 ; i < n/2 ; i++)
{
if (n%i == 0)
cout<<"le nombre n'est pas premier"<<endl;

else
cout<<"le nombre est premier"<<endl;
}

return 0;
}
Configuration: Windows XP
Firefox 2.0.0.11

4 réponses

  1. dcanl Messages postés 3004 Date d'inscription   Statut Contributeur Dernière intervention   470
     
    Salut.

    C'est quoi qui marche pas ?

    @+
    0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,

    Tu as un problème d'algorithme dans ton code. Voici une correction, qui devrait marcher.

    Cordialement

    #include <iostream>
    using namespace std;
    int main()
    {
    int n;
    cout<<"entrez un nombre entier positif"<<endl;
    cin>>n;
    if(n<=0) {
       cout << "le nombre doit etre positif"<<endl;
       return -1;
    }
    if(n==1){
       cout<<"le nombre est premier"<<endl;
       return 0;
    }
    else if(n==2) {
       cout<<"le nombre est premier"<<endl;
       return 0;
    }
    
    for ( int i = 3 ; i < n/2 ; i++)
    {
       if (n%i == 0)
          cout<<"le nombre n'est pas premier"<<endl;
         return 0;
       }
    }
       cout<<"le nombre est premier"<<endl;
    
    return 0;
    }
    
    0
  3. silvain-dup Messages postés 3 Statut Membre 2
     
    1 n'est pas considéré comme un nombre premier
    on dirait que vous oubliez de tester le facteur 2
    pas besoin d'aller jusqu'à n/2, il suffit d'aller jusqu'à sqrt(n)
    0
  4. sanaa1 Messages postés 64 Statut Membre 6
     
    bonjour
    merci bcp pour votre aide ca marche bien
    0