Language c
Fermé
nuleninfo
-
18 sept. 2009 à 18:39
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 - 18 sept. 2009 à 19:02
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 - 18 sept. 2009 à 19:02
2 réponses
D'après toi, après ces deux lignes:
int i, x, a;
int k=sqrt(x);
Quelle sera la valeur de 'k' ?
Bonne réflexion.
int i, x, a;
int k=sqrt(x);
Quelle sera la valeur de 'k' ?
Bonne réflexion.
Groarh
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
185
18 sept. 2009 à 19:02
18 sept. 2009 à 19:02
Hello,
je vois déjà un petit problème de chronologie : tu appelles sqrt(x) avant d’avoir obtenu la valeur de x.
Ensuite, dans le cas x>3, quand tu fais x%i, tu peux avoir par exemple x = 120 et i = 7 : 120 n’est pas divisible par 7, et 120%7 donne 1. Dans ce cas, ton programme va te dire « le nombre est premier » alors que 120 n’est pas premier… Bon d’accord, il est censé vérifier d’abord avec 1, 2, 3, 4, 5, 6, mais je mets en évidence un petit défaut de ton code.
En réalité, ce n’est que lorsque tu as vérifié tous les nombres avant racine de k que tu peux dire que x est premier. Donc ton printf ne doit pas se trouver dans le else mais plutôt après la boucle for.
Tiens-moi au courant ;)
je vois déjà un petit problème de chronologie : tu appelles sqrt(x) avant d’avoir obtenu la valeur de x.
Ensuite, dans le cas x>3, quand tu fais x%i, tu peux avoir par exemple x = 120 et i = 7 : 120 n’est pas divisible par 7, et 120%7 donne 1. Dans ce cas, ton programme va te dire « le nombre est premier » alors que 120 n’est pas premier… Bon d’accord, il est censé vérifier d’abord avec 1, 2, 3, 4, 5, 6, mais je mets en évidence un petit défaut de ton code.
En réalité, ce n’est que lorsque tu as vérifié tous les nombres avant racine de k que tu peux dire que x est premier. Donc ton printf ne doit pas se trouver dans le else mais plutôt après la boucle for.
Tiens-moi au courant ;)