int main(void)
{
    int i;
    int count = 1000;
    for(i = 2; i <= count; i++) {
        if(is_prime_number(i))
            printf("%d\n", i);
    }
    return EXIT_SUCCESS;
}
int main(int argc, char **argv)
{
    int start, end, nprimes = 0;
    int i, tid, nthreads;
    double threadtime[NTHREADS_MAX];
        
    if (argc < 3) {
        fprintf(stderr, "usage: primes <start_number> <end_number>\n");
        exit(EXIT_FAILURE);
    }
    start = atoi(argv[1]);
    end = atoi(argv[2]);

    if((start % 2) == 0 )
        start = start + 1;

    nprimes = 0;
    if (start <= 2)
        nprimes++;
        
    #pragma omp parallel private(tid)
    {
        #pragma omp master
        nthreads = omp_get_num_threads();
    
        tid = omp_get_thread_num();
        threadtime[tid] = omp_get_wtime();

        int loc_nprimes = 0;
        #pragma omp for private(i) schedule(dynamic, 5) nowait
        for (i = start; i <= end; i += 2) {
            if (is_prime_number(i)) {
               loc_nprimes++;
            }
        }
        #pragma omp atomic
        nprimes += loc_nprimes;
        
        threadtime[tid] = omp_get_wtime() - threadtime[tid];  
    }   
    printf("Number of primes found: %d\n", nprimes);
    
    for (i = 0; i < nthreads; i++) {
        printf("Thread %d time: %.6f\n", i, threadtime[i]); 
    }

    return EXIT_SUCCESS;
}
Exemplo n.º 3
0
static uint32
set_prime_numbers(void)
{
	uint32 count = 0;

	//prime[count++] = 2;

	// sqrt(2^32 - 1) < 65536 (max)
	for ( int i = 3; i <= 65536; i+= 2 )
		if ( is_prime_number(i) )
			prime[count++] = i;

	// only end point. 65536 is not prime number
	prime[count] = 65536;

	return count;
}
int main(void)
{
  int r;

  r = is_prime_number(INT_MAX);
  printf("%d\n", r);
  r = is_prime_number(1024);
  printf("%d\n", r);
  r = is_prime_number(16);
  printf("%d\n", r);
  r = is_prime_number(17);
  printf("%d\n", r);
  r = is_prime_number(25);
  printf("%d\n", r);
  r = is_prime_number(-1);
  printf("%d\n", r);
  r = is_prime_number(113);
  printf("%d\n", r);
  r = is_prime_number(7919);
  printf("%d\n", r);
  return (0);
}