#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdint.h>
#include <dispatch/dispatch.h>

#define INTERVALO 300
#define BEGINIG 5000

int main(int argc, char *argv[])
{
  uint32_t quantidade;
  if (argc==2) quantidade = atoi(argv[1]);
  else quantidade = 20;
  
  dispatch_queue_t globalFila = dispatch_get_global_queue (0, 0);  

  dispatch_apply(quantidade, globalFila, ^(size_t k) {
    uint32_t inicio, fim, j, primo, i, total;
    total = 0;
    inicio = k * INTERVALO + BEGINIG;
    fim = inicio + INTERVALO;
    for ( i = inicio; i < fim; i++){
      primo=0;
      for ( j = 2; j <= i; j++){
  	    if ( i%j == 0 ){
  	      primo++;
  		  if ( primo > 1 ){
  		    j=i;
  		  }
  		  else{
  		    if ( primo == 1 && j == i ){
  			  total++;
  		    }
  		  }
  	    }
      }
    }
  }); 
  
  return 0;
}