Language c
nuleninfo
-
Groarh Messages postés 682 Date d'inscription Statut Membre Dernière intervention -
Groarh Messages postés 682 Date d'inscription Statut Membre Dernière intervention -
Bonjour et salut a tous,
voila je débute en language c et en fait je voulais écrire un programme qui permet de dire si un nombre est premier ou pas.
Je tiens à le dire j'ai déja chercher sur google effectivement ya pleins de méthode dessus mais il y a toujours un truc qui cloche. Voila ce que j'ai esssayé de faire. Ca fonctionne seulement quand c'est un nombre qui n'est pas premier.
#include<stdio.h>
#include<math.h>
int main(){
int i, x, a;
int k=sqrt(x);
int valeur=0;
printf("entrez un nombre : ");
scanf("%d", &x);
if(x<2){printf("le nombre n'est pas premier");}
if(x==2){printf("le nombre est premier");}
if(x>=3){
for(i=2;i<=k;i++){
if(x%i==0){printf("le nombre n'est pas premier");break;}
else{printf("le nombre est premier");};}
;}
;}
Vous pouvez me dire ce qui cloche?
voila je débute en language c et en fait je voulais écrire un programme qui permet de dire si un nombre est premier ou pas.
Je tiens à le dire j'ai déja chercher sur google effectivement ya pleins de méthode dessus mais il y a toujours un truc qui cloche. Voila ce que j'ai esssayé de faire. Ca fonctionne seulement quand c'est un nombre qui n'est pas premier.
#include<stdio.h>
#include<math.h>
int main(){
int i, x, a;
int k=sqrt(x);
int valeur=0;
printf("entrez un nombre : ");
scanf("%d", &x);
if(x<2){printf("le nombre n'est pas premier");}
if(x==2){printf("le nombre est premier");}
if(x>=3){
for(i=2;i<=k;i++){
if(x%i==0){printf("le nombre n'est pas premier");break;}
else{printf("le nombre est premier");};}
;}
;}
Vous pouvez me dire ce qui cloche?
A voir également:
- Language c
- Windows display language french - Guide
- Vistalizator language pack windows 7 - Télécharger - Traduction
- Language binaire - Guide
- Photoshop cs6 french language pack - Forum Photoshop
- Autocad 2008 language pack french - Forum AutoCAD
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.
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 ;)