Programme en language c nombres premiers

Résolu
chaiimae Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
chaiimae Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

svp j'ai besoin d'un programme qui permet de trouver les nombres premiers <=100
cela consiste a remplir un tableau dans l'ordre du plus petit au plus grand de 2 a 100 puis de parcourir le tableau du début en gardant un entier rencontré et illiminé tous ces multiples par leur mise a zéro et tous les entiers restant non nuls sont des nombres premiers.

PS: les valeurs entieres ne sont pas entrées par l'utilisateur
je précise que jétude en 1ère TDI

Merci d'avance pour votre aide ^^



<config>Windows 7 / Firefox 6.0</config>

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Il s'agit de l'implémentation du crible d'Eratosthène.

Le but de ton exercice est de le faire toi-même. Par contre, on t'aidera bien volontiers si tu postes ton programme pour qu'on le corrige.
Ou à la rigueur, dis-nous ce qui te bloque, ce que tu comprends pas.
0
chaiimae Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
voila ce ke jai fais mais c incorrecte !#include<stdio.h>
#include<stdlib.h>
int main() {
int t[99],i,X;
i=3;
for(i>2;i<=100;i++){
printf("%d\n",t[i]);
}
for(i>2;i<=100;i++){
if(t[i]%i==0){
X=t[i]*0;
}
else{i++;
X=t[i];}}
for(i>2;i<=100;i++){
if(X!=0){printf("les nombres premiers %d\n",X);}}

system("pause");
return 1;
}
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Lorsque tu fais int t[n]; tu ne peux faire t[i] que si i est zntre 0 et n-1
Or toi tu utilises i=100 alors que n=99...
0
chaiimae Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
ah daccord merci jai oublier que la boucle for on doit commencer par un 0 m
ais comment je peux faire dans cet exercice pour commencer des nombres supérieur a 2?
0
chaiimae Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
devrai je utilisé la boucle while ou quoi?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
La boucle for est un bon choix... Mais il faut savoir s'en servir correctement.
Le premier champ c'est une initialisation, pas une condition : for (i = 2; i<=100; i++)
0
Sayle_lord Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
fiddy dit vrai fait ton programme du moins essai de le faire puis pose tes question sur les partie qui te bloquent ou bien publie ta portion de programme pour la corrigé pour être sympa faut faire une boucle qui parcoure tant tableau avec une belle condition (tu devise ton nombre sur les nombre allons de 1 a Nbre/2) aller travaille bien bonne chance
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
(tu devise ton nombre sur les nombre allons de 1 a Nbre/2
On va peut-être éviter le 1 car il y a beaucoup de nombres divisibles par 1 ;-)))
0
Sayle_lord Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
pour être exact tout les nombre mais je ne vais pas donner tout les réponse elle va ce creusé la tête pour évite ce premier cas
0