[c]: recherche de nombres premiers avec le crible d'ératosthène

Description

algo bien bourrin qui permet de trouver des nombres premiers jusqua 99999;
on met les nombres de 1 à n dans un tableau, puis à chaque nombre non éliminé, on elimine dans tout le tableau les multiples de ce nombre et ainsi de suite..

Source / Exemple :


// prog du crible d'erathostène pour chercher des nb premiers..

#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>

int main() {
	
	int tableau[100000];
	int premier[10000];
	int cur1,cur2;
	int element;
	int ntemp,n;
	int a=0;
	for (cur1=0;cur1<10000;cur1++){
		
		premier[cur1]=0;
			
		tableau[cur1]=0;
	
	}
	
		
	cout<<"nombres premiers jusqu'a combien ? \n";
	cin>>ntemp;
	n=ntemp;

	for (cur1=1;cur1<n;cur1++){
	
			a++;		
			tableau[cur1]=a;
	}
	
	
	premier[0]=2;

	for (cur2=0;cur2<n;cur2+=2){
	
	tableau[cur2]=0;
	
	}
	
	premier[1]=3;

	for (cur2=0;cur2<n;cur2+=3){
	
	tableau[cur2]=0;
	
	}	
	int temp;
	cur1=4;
	cur2=2;

		while (cur1<n){
		
			while (tableau[cur1]!=0){
			

			premier[cur2]=tableau[cur1];

			cur2++;
			temp=tableau[cur1];
			for (int sup=0;sup<=n;sup+=temp){
			
			tableau[sup]=0;

			}			
			}

	cur1++;
		
		
		}
	
char sertarien;
cout<<"\naffichage des nb premiers jusque n : \n";
for (element=0;element<cur2;element++){
cout<<premier[element]<<"  ";

if (element%200==0 && element!=0){
cout<<endl;
	printf("appuyer sur une touche pour continuer\n");
sertarien=getch();

}
}
cout<<endl;
sertarien=getch();

	
	return 0;}

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.