home *** CD-ROM | disk | FTP | other *** search
- #include <varargs.h>
- #include <native.h>
- #include "Sieve.h"
-
- long __cdecl Sieve_CountPrimes(struct HSieve *phThis, HArrayOfByte *phFlags)
- {
- unsigned long count = 0;
- unsigned long i;
-
- for (i = 0; i < obj_length(phFlags); i++)
- (phFlags->body)[i] = 1;
-
- for (i = 2; i < obj_length(phFlags); i++)
- {
- if ((phFlags->body)[i] != 0)
- {
- unsigned long k;
- for (k = i + i; k < obj_length(phFlags); k += i)
- (phFlags->body)[k] = 0;
-
- count++;
- }
- }
-
- return count;
- }
-