From 055170988891cd2ae9159b87a51d2172fb0446b5 Mon Sep 17 00:00:00 2001 From: Kevin Keogh Date: Mon, 18 Mar 2019 15:20:29 -0400 Subject: [PATCH] Add sieve of eratosthenes --- primes.h | 27 +++++++++++++++++++++++++++ problem-357.c | 8 ++++++++ 2 files changed, 35 insertions(+) diff --git a/primes.h b/primes.h index ca4060e..f1aefbc 100644 --- a/primes.h +++ b/primes.h @@ -1,3 +1,8 @@ +#include + +#define TRUE 1 +#define FALSE 0 + int is_prime(long num) { int i = 5; @@ -19,3 +24,25 @@ int is_prime(long num) return 1; } + +char* eratosthenes(long num) +{ + long i, j; + char* primes; + + primes = (char*)malloc((num+1)*sizeof(char)); + if (primes == NULL) { + return NULL; + } + + memset(primes, TRUE, num); + primes[1] = FALSE; + + for (i=2; i<=num; i++) + if (primes[i]) + /* Mark factors as composite */ + for (j=i*i; j #include #include +#include #include "primes.h" #define MAX_NUM 100000000 @@ -13,6 +14,7 @@ int main(int argc, char **argv) long sum = 0; char *primes; + /* primes = malloc((MAX_NUM+1)*sizeof(char)); for (i=1; i