Résolution du crible d’Ératosthène
bonjour
je veux afficher l'ensemble des nombre premier inférieur à un entier n par le Crible d’Ératosthène et j'ai un problème quand n dépasse 15 pouvez vous m'aider voila mon code:
merci d'avance
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| #include<iostream>
#include<math.h>
using namespace std;
// je cree un tableaux dynamique
int* tab(const int taille)
{
int* tab = new int[taille];
return tab;
}
int main()
{
int i, j,n,compteur=1;
int k = 0;
cout << "saisir le reelle n: ";
cin >> n;
int * tabl = tab(n);
for (i = 0; i < n; i++)
tabl[i] = i;
for(i=2;i<sqrt(n);i++)
{
for (j = i+1; j < n; j++)
{
if (i != j)
{
if (j%tabl[i] == 0)
{
compteur=compteur+1;
tabl[j] = 1;
}
}
}
}
int *newtab = tab(n - compteur);
for (i = 1; i < n; i++)
{
if (tabl[i] != 1)
{
newtab[k] = tabl[i];
k++;
}
}
cout << "\nles nombres premier sont au nombre de "<<n-compteur<<"\n";
for (i = 0; i < (n - compteur); i++)
{
cout << newtab[i];
//system("pause");
}
cout << "\n\n";
return 0;
} |