home *** CD-ROM | disk | FTP | other *** search
/ Dream 41 / Amiga_Dream_41.iso / Amiga / Programmation / c / PDC.lha / PDC / bin.lzh / sample / Sieve.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-04-06  |  877 b   |  33 lines

  1.  
  2. #include <stdio.h>
  3.  
  4. #define size    8190
  5. #define LOOP    100
  6. #define TRUE    1
  7. #define FALSE   0
  8.  
  9. char            flags[size+1];
  10.  
  11. main()
  12. {
  13.     int             i, prime, k, count, iter;
  14.  
  15.     printf("\n%d iterations\n", LOOP);
  16.  
  17.     for (iter = 1; iter <= LOOP; iter++) {
  18.         count = 0;                          /* prime counter        */
  19.         for (i = 0; i <= size; i++)         /* set all flags TRUE   */
  20.             flags[i] = TRUE;
  21.         for (i = 0; i <= size; i++) {
  22.             if (flags[i]) {                 /* found a prime        */
  23.                 prime = i + i + 3;          /* twice index plus 3   */
  24.                 k = i + prime;
  25.                 for (k = i+prime; k <= size; k += prime) 
  26.                     flags[k] = FALSE;       /* kill all multiples   */
  27.                 count++;
  28.             }
  29.         }
  30.     }
  31.     printf("\n%d primes.\n\n", count);
  32. }
  33.