Nombre premier
Résolu
sanaa1
Messages postés
64
Statut
Membre
-
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;
}
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
-
Salut.
C'est quoi qui marche pas ?
@+ -
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; } -
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) -