Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<string.h>
- #include<pthread.h>
- #include<stdlib.h>
- #include<unistd.h>
- #define MAX 10000
- int nombre[MAX];
- pthread_t tID[100];
- void *multiple(void* arg)
- {
- printf("je suis in the thread %d \n", pthread_self());
- int nb = *((int*)arg);
- printf("%d\n",nb);
- int cpt, ret;
- for(cpt = (nb * 2); cpt < MAX; cpt+=nb){
- //printf("%d-", cpt);
- nombre[cpt] = 1;
- }
- printf("ofc\n");
- pthread_exit(NULL);
- }
- int main(void)
- {
- int i, cptThread, cptNP = 0;
- cptThread=0;
- for(i = 0; i < MAX; i++)
- nombre[i] = 0;
- nombre[0] = 1;
- nombre[1] = 1;
- for(i = 0; i < MAX; i++){
- //Rajout qui buguait
- //if(nombre[i] == 0)
- //printf("%d-", i);
- //Fin du rajout qui buguait
- if(nombre[i] == 0 && (i * i) < MAX){
- //multiple((void *)i);
- int err = pthread_create(&(tID[cptThread]), NULL, &multiple, (void *)&i);
- //if (err != 0)
- // printf("\nCan't create thread :[%s]", strerror(err));
- //else{
- printf("Thread créé\n");
- cptThread++;
- usleep(100);
- //}
- }
- }
- for(i = 0; i < cptThread; i++)
- pthread_join(*(tID + i), NULL);
- printf(" Nombres Premiers : ");
- for(i = 0; i < MAX; i++){
- if(nombre[i] == 0){
- printf("%i-", i);
- cptNP++;
- }
- }
- printf("\n Nombre de NP : %d\n", cptNP);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement