home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_11_04
/
1104084a
< prev
next >
Wrap
Text File
|
1992-12-23
|
931b
|
32 lines
/* primes.c */
/* Copyright 1992 by P.J. LaBrocca */
#include <stdlib.h>
#include "mixed.h"
#define NUM 16000 /* highest number to check for being prime */
Integer Primes[ 2000 ];
void init_primes( void )
{
char *mark = malloc(NUM * sizeof(char) );
Integer *pr = Primes; /* point to global array */
Integer j, k;
for(j = 0; j < NUM; ++j)
mark[j] = 1; /* mark everything prime */
for(j = 4; j < NUM; j += 2)
mark[j] = 0; /* scratch off all the even numbers ... */
*pr++ = 2; /* ... except for 2; put it in primes array */
for(j = 3; j < NUM; j += 2) /* check each odd number: */
if(mark[j]) { /* if it's marked... */
*pr++ = j; /* ..record it in array.. */
for(k = j + j; k < NUM; k += j)
mark[k] = 0; /* ..and scratch off all its multiples */
}
free( mark );
}
#undef NUM