Advertisement
Guest User

Untitled

a guest
Oct 25th, 2014
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.32 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<pthread.h>
  4. #include<stdlib.h>
  5. #include<unistd.h>
  6.  
  7. #define MAX 10000
  8. int nombre[MAX];
  9. pthread_t tID[100];
  10.  
  11. void *multiple(void* arg)
  12. {
  13.     printf("je suis in the thread %d \n", pthread_self());
  14.     int nb = *((int*)arg);
  15.     printf("%d\n",nb);
  16.     int cpt, ret;
  17.    
  18.     for(cpt = (nb * 2); cpt < MAX; cpt+=nb){
  19.         //printf("%d-", cpt);
  20.         nombre[cpt] = 1;
  21.     }
  22.     printf("ofc\n");
  23.     pthread_exit(NULL);
  24. }
  25.  
  26. int main(void)
  27. {
  28.     int i, cptThread, cptNP = 0;
  29.  
  30.     cptThread=0;
  31.  
  32.     for(i = 0; i < MAX; i++)
  33.         nombre[i] = 0;
  34.     nombre[0] = 1;
  35.     nombre[1] = 1;
  36.  
  37.     for(i = 0; i < MAX; i++){
  38. //Rajout qui buguait
  39.         //if(nombre[i] == 0)
  40.             //printf("%d-", i);
  41. //Fin du rajout qui buguait
  42.         if(nombre[i] == 0 && (i * i) < MAX){
  43.             //multiple((void *)i);
  44.             int err = pthread_create(&(tID[cptThread]), NULL, &multiple, (void *)&i);
  45.             //if (err != 0)
  46.             //    printf("\nCan't create thread :[%s]", strerror(err));
  47.             //else{
  48.                 printf("Thread créé\n");
  49.                 cptThread++;
  50.                 usleep(100);
  51.             //}
  52.         }
  53.     }
  54.  
  55.     for(i = 0; i < cptThread; i++)
  56.         pthread_join(*(tID + i), NULL);
  57.  
  58.     printf("  Nombres Premiers : ");
  59.  
  60.     for(i = 0; i < MAX; i++){
  61.         if(nombre[i] == 0){
  62.             printf("%i-", i);
  63.             cptNP++;
  64.         }
  65.     }
  66.  
  67.     printf("\n  Nombre de NP : %d\n", cptNP);
  68.  
  69.     return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement