Nombres premiers

Fermé
YonDé - 9 janv. 2011 à 00:18
 YonDé - 9 janv. 2011 à 00:19
Bonjour.
j'ai un probleme avec mon programme des nombres premiers.
je dois suivre un algorithme ( tout a fait pourri au passage ).
déterminer tous les nombres premiers inferieurs a une certaine borne donnée (C)
1-on écrit une liste d'entier de 2,....,C.
2-pour i=2,3...., Racine de c
faire
si "i" est encore dans la liste alors effacer de la liste les mutliples (2*i,3*i,.....)
si non les nombres qui restant dans la liste sont des nombres premiers inferieur a C.
merci d'avance ( je viens de m'initier a la programmation en langage C)
voila mon programme
ps:j'ai compile mon programme dans la fenete C++



#include <cstdlib>
#include <iostream>
#include <math.h>
#include <conio.h>
#include <string.h>

using namespace std;

int main(int argc, char *argv[])
{

int c,i,x,y,m,n,racine_c,k,compteur=0,r=0;
float Racine_c;
int table [1000]= {};
int table1[1000]={};
int table2 [1000]={};
int tableauDesNombresPremiers[1000]={};
x=1;y=1;n=0;


printf("donne la valeur de la borne superieur des nombres entiers:");
scanf("%d",&c);

printf("afficher la liste des nombres entiers:\n");
for(m=1;m<=c;m++)
{
printf("%i\n",m);
table[x]=m;
x++;
}


Racine_c=sqrt(c);
racine_c=int(Racine_c);
printf("la racine_c= %d\n",racine_c);
printf("la liste des nombres premiers=\n");
for(i=2;i<=racine_c;i++){

for(x=1;x<=m;x++)
{
table1[x]=table[x]*i;

if(table1[x]<m )
{
memcpy(table2, table1, sizeof table2);
printf("%d\n",table2[x]);
}

}

for(k=1;k<=c;k++)
{

if(table2[x]!=k)
{

tableauDesNombresPremiers[compteur] = k;
compteur++;

}




}


}


system("PAUSE");
return EXIT_SUCCESS;
}

1 réponse

j'ai oublie de mettre le printf ("%d",tableauDesNombresPremiers[compteur]); désole
, mon probleme biensûr ce que j,arrive pas a voir les nombres premiers en suivant l'algo
il y a des variables que je n'utilise pas
0