Probleme sur les nombre premier.

Fermé
m4ss1n1ss4 Messages postés 3 Date d'inscription mercredi 9 septembre 2020 Statut Membre Dernière intervention 15 septembre 2020 - Modifié le 11 sept. 2020 à 08:50
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 15 sept. 2020 à 06:43
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

yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
9 sept. 2020 à 22:54
bonjour, le compilateur ne t'indique pas à quelle ligne l'erreur se produit?
0
m4ss1n1ss4 Messages postés 3 Date d'inscription mercredi 9 septembre 2020 Statut Membre Dernière intervention 15 septembre 2020
11 sept. 2020 à 00:51
Salut, c'est a cette ligne:
for i:= 2 to (sqrt(n)) do

Et il me met le curseur juste avant le i.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
11 sept. 2020 à 08:20
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.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
11 sept. 2020 à 08:28
Petite précision, pour un for par défaut, comme c’est ton cas
0
yg_be Messages postés 22728 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
11 sept. 2020 à 08:52
en effet, le message d'erreur obtenu est: "control variable type is not valid".
moi, avec un autre compilateur, j'obtiens "Ordinal expression expected".
0
m4ss1n1ss4 Messages postés 3 Date d'inscription mercredi 9 septembre 2020 Statut Membre Dernière intervention 15 septembre 2020
15 sept. 2020 à 02:49
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"
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
15 sept. 2020 à 06:43
Le même genre de message donc....
C’est de quel type une racine?
0