Programme en language c nombres premiers

Résolu/Fermé
chaiimae Messages postés 7 Date d'inscription samedi 21 janvier 2012 Statut Membre Dernière intervention 22 janvier 2012 - Modifié par chaiimae le 21/01/2012 à 14:47
chaiimae Messages postés 7 Date d'inscription samedi 21 janvier 2012 Statut Membre Dernière intervention 22 janvier 2012 - 22 janv. 2012 à 00:15
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
21 janv. 2012 à 18:32
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 samedi 21 janvier 2012 Statut Membre Dernière intervention 22 janvier 2012
21 janv. 2012 à 22:50
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
21 janv. 2012 à 23:05
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 samedi 21 janvier 2012 Statut Membre Dernière intervention 22 janvier 2012
21 janv. 2012 à 23:22
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 samedi 21 janvier 2012 Statut Membre Dernière intervention 22 janvier 2012
21 janv. 2012 à 23:23
devrai je utilisé la boucle while ou quoi?
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
21 janv. 2012 à 23:46
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 mercredi 18 janvier 2012 Statut Membre Dernière intervention 21 janvier 2012
21 janv. 2012 à 18:48
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
21 janv. 2012 à 18:53
(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 mercredi 18 janvier 2012 Statut Membre Dernière intervention 21 janvier 2012
21 janv. 2012 à 18:57
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