Probleme sur les nombre premier.

Signaler
Messages postés
3
Date d'inscription
mercredi 9 septembre 2020
Statut
Membre
Dernière intervention
15 septembre 2020
-
Messages postés
14782
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 septembre 2020
-
Bonjour,
Étant donné que si un nombre n'a pas de diviseur entre 1 et sa racine, on dit qu'il est premier.Donc j'ai voulu partir de ce principe pour créer un programme qui dit si un nombre et premier ou non, et j'ai procéder comme ceci :
program premier;
var n:integer;
    i,y:real;
begin 
   writeln('Saisissez un entier');
   readln(n);
   for i:= 2 to (sqrt(n)) do
      if (n)mod(i) =0 then 
        writeln('le nombre n''est pas premier')
      else 
        writeln('le nombre est premier');
end
  

le souci c'est que a la compilation, ça m'affiche 'control variable type is not valid'.
Merci de votre aide.

3 réponses

Messages postés
12347
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 septembre 2020
694
bonjour, le compilateur ne t'indique pas à quelle ligne l'erreur se produit?
Messages postés
3
Date d'inscription
mercredi 9 septembre 2020
Statut
Membre
Dernière intervention
15 septembre 2020

Salut, c'est a cette ligne:
for i:= 2 to (sqrt(n)) do

Et il me met le curseur juste avant le i.
Messages postés
14782
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 septembre 2020
580
Bonjour

Tout d’abord merci d’avoir essayé d’utiliser la coloration syntaxique. Cependant le résultat pourrait être encore mieux en forçant le langage. Voici un petit tuto sur la bonne utilisation des balises de code https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Pour ton problème, en plus de souligner le i, ton IDE te renvoie certainement un message d’erreur.

Et ce message doit dire un truc du genre, « c’est pas le bon type de variable ».

Quelques soit le langage, la variable d’itération d’un for doit être un entier.
Messages postés
14782
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 septembre 2020
580
Petite précision, pour un for par défaut, comme c’est ton cas
Messages postés
12347
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 septembre 2020
694
en effet, le message d'erreur obtenu est: "control variable type is not valid".
moi, avec un autre compilateur, j'obtiens "Ordinal expression expected".
Messages postés
3
Date d'inscription
mercredi 9 septembre 2020
Statut
Membre
Dernière intervention
15 septembre 2020

en effet, mettre le i en "integer" résout ce problème mais cette fois si une autre erreur dans la même ligne mais dans (sqrt(n)) et le message d'erreur est "Expression type not compatible with control variable type"
Messages postés
14782
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
26 septembre 2020
580
Le même genre de message donc....
C’est de quel type une racine?