Operateur modulo % (Question de débutante)

Résolu/Fermé
isegoria Messages postés 19 Date d'inscription mercredi 8 mai 2013 Statut Membre Dernière intervention 15 mai 2016 - Modifié par isegoria le 8/12/2013 à 15:44
isegoria Messages postés 19 Date d'inscription mercredi 8 mai 2013 Statut Membre Dernière intervention 15 mai 2016 - 5 nov. 2015 à 10:19
PARDON :-S :-) : je ne sais pas comment supprimer mon message, j'avais mal cherché sur le forum avant d'écrire ce message, mais en insistant, j'ai finalement trouvé une réponse qui m'a aidée : j'avais apparemment mis trop de parenthèses après le while .
-------------------------------------------------------------------------------------------------------------------
Bonjour à tous ! :-)

Je suis ultra débutante en C++ , et j'essaie de coder un mini programme pour définir si un nombre (à saisir) est premier ou non.

Tout est bon, sauf la ligne où j'utilise l'opérateur modulo (reste de division entière) : %.

Je ne sais pas si j'utilise mal "%", ou s'il faut que j'installe une bibliothèque spécifique (j'ai bien conio.h, myconio.h, stdio.h installés et opérationnels), mais voici ce que j'obtiens sous Eclipse (version Europa), à savoir que c'est donc la ligne soulignée qui est signalée comme posant problème, avec le message :
" multiple markers at this line :
- expected identifier before '(' token
- expected ';' before '(' token
"


/* Nbre Premier
* date : 08/12/2013
*/

// Bibliothèques nécessaires
#include <myconio.h>

// Programme principal

int main (){

int nbre; // déclarations locales
int diviseur = 2;

printf ("Saisir un nombre: ");
scanf ("%d",&nbre);


while ((nbre % diviseur) !=0 && (diviseur < nbre)) {
diviseur++;

}
if (diviseur == nbre){
printf ("Nombre premier.");
}else{
printf ("Ce nombre n'est pas premier.");
}
getch ( );
return 0;
}

Voilà, merci aux âmes charitables du forum CCM par avance ! :-)


1 réponse

isegoria Messages postés 19 Date d'inscription mercredi 8 mai 2013 Statut Membre Dernière intervention 15 mai 2016 17
5 nov. 2015 à 10:19
Maintenant que j'ai un peu progressé (je précise ici que j'étudie la programmation de temps en temps en loisirs), je peux me répondre à moi-même (lol écho écho écho écho .... ), pour le cas où d'autres internautes tomberaient sur ce message et que cette réponse puisse éventuellement (ce dont je doute mais sait-on jamais) rendre service, et pour pouvoir inscrire ce sujet comme "résolu".

C'était vraiment du grand n'importe quoi, pour du grand débutage de nullasse, mais bon ...
Toutes mes excuses aux modérateurs/administrateurs du site ou autres qui me liront éventuellement .... Merci et bravo pour ce que vous faites (au passage) ...

Tout d'abord, petit rappel : c'est quoi un nombre premier ?
Définition : "<ital>Un nombre premier est un entier naturel qui admet exactement" (c'est-à-dire uniquement) "2 diviseurs distincts entiers et positifs (c'est-à-dire 1 et lui-même). Ainsi, 1 n'est pas premier car il n'a qu'un seul diviseur entier positif ; 0 non plus car il est divisible par tous les entiers positifs.
Les 1ers nombres premiers sont :
2, 3, 5, 7, 11, 13, 17, 19, ... " (source Wikipedia), ".
Autre petit rappel : une fraction-division, c'est la division du numérateur par le dénominateur.

Concernant la partie de code, il y a erreurs de syntaxe (des parenthèses n'importe où n'importe comment), et un code tout pourri, faut bien l'dire (dites, les admin/modérateurs, si vous voulez/pouvez, peut-être que vous pourriez supprimer carrément ce post ? Vraiment désolé).

On pouvait donc écrire (enfin, à mon humble avis, car il y a sans doute mieux) :

int nombre ;

if ( (nombre != 0) && (nombre != 1) && ( (nombre%2) != 0) && ((nombre%3) != 0) && ((nombre%5) != 0) && ((nombre%7) != 0) )
{
cout << "Ce nombre est premier" ;
} else {
cout << "Ce nombre n'est pas premier" ;
}

Souhaitant avoir - malgré tout - contribué à la solidarité du ouèb.
0