Débutant cherche commentaire sur son code
Bonjour à tous,
comme dit dans le titre je débute (et je ne suis pas étudiant mais autodidacte :) )et dans le code ci-dessous j'aurais 2 questions :
Objectif de mon code :
- déterminer si le nombre est un nombre premier
- Saisir un autre nombre pour sinon 'Q' pour quitter
Questions
- Quelle différence dans les include, la façon dont je l'ai fait et les '.h' (j'ai vu les deux formulations) ?
- J’essaie à la fin de tester si c'est un nombre qui est saisie ou si 'Q' et j'ai un problème de conversion char > int
- Y a-t-il un moyen de faire plus propre pour le test de sortie/nouveau test ?
Je sais, j'avais di 2 ;)
Code:
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#include<cctype>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
using namespace std;
int main()
{
int nb;
int div;
int res;// res=1 > pas premier / res = 2 > premier
char encore;
/* Première demande */
cout << "Saisissez un nombre entier : "; cin >> nb;
do
{
/* Test nombre premier */
if (nb==1 || nb==2 || nb==3 || nb==5)
res=1;
else if (nb%2==0 || nb%3==0 )
res=0;
else
{
div=5;
while ( sqrt(nb) <= div && res == 0)
{
if(nb%div==0) { res=1; }
div = div + 2;
}
}
/* Affichage résultat */
if (res==1)
cout<<"C'est un nombre premier" << endl;
else
cout<<"Ce n'est pas un nombre premier" << endl;
/* Nouvel essai ... ou pas */
cout<<"Tapez [Q] pour quitter sinon saisissez un autre nombre : ";
cin >> encore;
if (!isalpha(encore)) nb=atoi(encore.c_str());
}
/* Si pas 'Q' on boucle */
while (encore!='Q' && nb!=0);
return 0;
} |
Si tu as lu jusqu'ici soit remercié.
Si tu as un bout de réponse soit vénéré ! :D