home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 14 / IOPROG_14.ISO / soft / sdkjava / sdkjava.exe / SDKJava.cab / Samples / native / SieveDemo2 / SieveDemo.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-03-05  |  758 b   |  38 lines

  1. //
  2. //  SieveDemo.c
  3. //
  4. //  Copyright (c) 1997-1998, Microsoft Corporation.  All rights reserved.
  5. //
  6.  
  7. #include <stdarg.h>
  8. #include <native.h>
  9. #include "Sieve.h"
  10.  
  11. DWORD __cdecl RNIGetCompatibleVersion()
  12. {
  13.     return RNIVER;
  14. }
  15.  
  16. long __cdecl Sieve_CountPrimes(struct HSieve *phThis, HArrayOfByte *phFlags)
  17. {
  18.     unsigned long count = 0;
  19.     unsigned long i;
  20.  
  21.     for (i = 0; i < obj_length(phFlags); i++)
  22.         (phFlags->body)[i] = 1;
  23.  
  24.     for (i = 2; i < obj_length(phFlags); i++)
  25.     {
  26.         if ((phFlags->body)[i] != 0)
  27.         {
  28.             unsigned long k;
  29.             for (k = i + i; k < obj_length(phFlags); k += i)
  30.                 (phFlags->body)[k] = 0;
  31.  
  32.             count++;
  33.         }
  34.     }
  35.  
  36.     return count;
  37. }
  38.