Language c
nuleninfo
-
Groarh Messages postés 706 Statut Membre -
Groarh Messages postés 706 Statut Membre -
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
- Vistalizator language pack windows 7 - Télécharger - Traduction
- Windows display language french - Guide
- Autocad 2008 language pack french - Forum AutoCAD
- The language dll vb6fr.dll could not be found - Forum Windows
- Desmume change language - Forum Jeux vidéo
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 ;)