Re: A very slow program

Paul <[email protected]> Mon, 16 Sep 2024 01:22:09 -0400
Newsgroups alt.comp.lang.c,comp.lang.c
Organization A noiseless patient Spider
Message-ID <[email protected]>
On Sun, 9/15/2024 6:45 PM, Student Project wrote:
> #include <time.h>
> #include <stdio.h>
> 
> #define RUNS 1000
> #define SIZE 1000000
> 
> int mark[SIZE];
> 
> int main(void)
> {
>      time_t start, finish;
>      int i, loop, n, num;
> 
>      time(&start);
> 
>      /*  This loop finds the prime numbers between 2 and SIZE   */
>      for (loop = 0; loop < RUNS; ++loop)
>      {
>          for (n = 0; n < SIZE; ++n)
>              mark[n] = 0;
>          /*  This loops marks all the composite numbers with -1  */
>          for (num = 0, n = 2; n < SIZE; ++n)
>              if (!mark[n])
>              {
>                  for (i = 2 * n; i < SIZE; i += n)
>                      mark[i] = -1;
>                  ++num;
>              }
>      }
>      time(&finish);
>      printf("Program takes an average of %f seconds "
>             "to find %d primes.\n",
>             difftime(finish, start) / RUNS, num);
> }
> /*
> The result on my slow machine:
> Program takes an average of 0.018000 seconds to find 78498 primes.
> */
> 

Good prime code, comes with its own timing routines :-)

http://cr.yp.to/primegen.html

   http://cr.yp.to/primegen/primegen-0.97.tar.gz

  Paul